通过上一篇,我们应该对 Ansible 有了一个初步的了解,Ansible 是可以批量管理远程主机的。
实际上,Ansible 提供了两种完成管理的方式的:一种是 Ad-Hoc
,即 ansible 命令,上一篇中所使用的就是 Ad-Hoc;另外一种就是 Ansible-playbook
,它是对 Ad-Hoc 进行的封装,可以进行任务编排。
Ad-Hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令,相当于 bash 中的一句话 shell。而 playbook 适合于解决更为复杂的任务,相当于 shell scripts。
本篇主要对 Ad-Hoc 命令进行讲解。
ansible 命令参数详解
ansible 命令用法如下:
ansible <host-pattern> [options]
使用 ansible -h
命令就可以列出所有的命令参数,下面列举了常用的一些参数。
-v
,--verbose
:输出详细执行信息,-vvv
可以得到执行过程中的所有信息-i INVENTORY
,--inventory=INVENTORY
,--inventory-file=INVENTORY
:指定 inventory 文件,默认使用/etc/ansible/hosts
-f FORKS
,--forks=FORKS
:执行时并发的线程个数,默认为 5-m MODULE_NAME
:指定 module,默认为command
模块-a MODULE_ARGS
:指定 module 的参数-k
:提示输入密码-o
:精简输出内容-s
,--sudo
:使用 sudo 执行-t TREE
:输出执行信息到 TREE 目录下-T SECONDS
:指定连接远程主机的超时时长,单位是秒-l SUBSET
,--limit=SUBSET
:指定运行的主机--list-hosts
:列出主机列表,并不会执行其他操作
Ad-Hoc 使用示例
在任意目录下新建 hosts 文件,并将主机信息写入:
[test]
10.10.91.[151:153]
[all:vars]
ansible_user=root
ansible_password=pass
-i –list-hosts 示例
# ansible -i hosts all --list-hosts
hosts (3):
10.10.91.151
10.10.91.152
10.10.91.153
-l 示例
# ansible -i hosts test -m ping -l 10.10.91.151
10.10.91.151 | SUCCESS => {
"changed": false,
"ping": "pong"
}
# ansible -i hosts test -m ping --limit=10.10.91.151
10.10.91.151 | SUCCESS => {