Ansible常用命令使用介绍

Ansible作为一个如此强大的自动化部署工具,必然也提供了强大的命令行,具体有哪些呢?可以去ansible安装的bin目录下找到,如下图:
在这里插入图片描述
下面我们就对上面这些命令进行详细讲解,其中比较常见的是ansible和ansible-playbook

ansible

ansible命令又被称为ad-hoc命令,他主要是用来快速在多个远程机器Hosts上执行单个任务(task),他的优点是可以不需要像ansible-playbook执行一样配置playbook等配置文件。

ansible [-a MODULE_ARGS] [-m MODULE_NAME] pattern

一个简单的例子如下:
通过ansible在localhost这个host,使用shell模块(module)执行ls命令,结果如下
Ansible常用命令使用介绍_第1张图片

具体ansible可支持参数可在本地通过ansible --help查看

ansible-playbook

ansible-playbook主要用来执行ansible的playbook。他可以用来在多个远程机器Hosts上执行一个或多个任务(task),这个命令执行时可以指定一个或多个playbook的名字。

ansile-playbook [-u USER_NAME] [--become-user BECOME_USER] [-i INVENTORY] [--list-hosts] playbook [playbook...]

当我们使用ansible-playbook命令执行playbook时,ansible会先将playbook 的task解析成python文件的命令,然后通过ssh连接到host(Managed node),通过sftp/scp将解析的python文件传输到host机器上去,然后使用–become-user指定的账号或者是默认账号admin调用host机器上安装的python执行相应的命令。如下图:
Ansible常用命令使用介绍_第2张图片

ansible-config

这个命令主要用来初始化或者查看当前机器ansible的配置信息,具体用法如下

ansible-config [-h] [-version] [-v] {list,dump,view,init}

ansible-pull

该命令中每个Managed Node自己从VCS拉取playbook并对其解析,同时使用python命令去执行。这种命令适用于Control Nodes需要管理很多Managed Node的情况。
他跟ansible-playbook命令很类似,区别就是ansible-pull是pull模式,而ansible-playbook是push模式,由于ansible-pull模式playbook的解析是在managed nodes上执行的,所以control node需要把ansible也传输到managed nodes(hosts)。

ansile-pull [-u USER_NAME] [--become-user BECOME_USER] [-i INVENTORY] [--list-hosts] [-U URL] [-C CHECKOUT] playbook [playbook...]

Ansible常用命令使用介绍_第3张图片

ansible-inventory

该命令主要用于显示或者导出ansible配置好的Inventory

ansible-inventory {--list/--host/--graph}

ansible-doc

该命令主要用于通过获取当前安装的plugin的一些api,具体用法如下

ansible-doc [plugin [plugin ...]]

一个使用实例:ansible-doc shell

部分常用配置详解

参数简写 参数全名 解释
-u –user 用来指定ansible control node连接
–become-user 连接到managed node(host)之后使用哪个account去执行task,默认情况下使用admin账号操作
-i –inventory 用来设置inventory.yml文件的路径
–list-hosts 如果设置了该参数,在执行ansible-playbook命令时会显示当前匹配的host集合

你可能感兴趣的:(DEVOPS,devops)