查看ansible版本
import ansible
print(ansible.__version__)
命令参数
- -m:要执行的模块,默认为command
- -a:模块的参数
- -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置
- -k:提示输入ssh登录密码,当使用密码验证的时候用
- -s:sudo运行
- -U:sudo到哪个用户,默认为root
- -K:提示输入sudo密码,当不是NOPASSWD模式时使用
- -C:只是测试一下会改变什么内容,不会真正去执行
- -c:连接类型(default=smart)
- -f:fork多少进程并发处理,默认为5个
- -i:指定hosts文件路径,默认default=/etc/ansible/hosts
- -I:指定pattern,对
已匹配的主机中再过滤一次 - --list-host:只打印有哪些主机会执行这个命令,不会实际执行
- -M:要执行的模块路径,默认为/usr/share/ansible
- -o:压缩输出,摘要输出
- --private-key:私钥路径
- -T:ssh连接超时时间,默认是10秒
- -t:日志输出到该目录,日志文件名以主机命名
- -v:显示详细日志
举两个例子
// 默认使用command模块
ansible all -a "ls"
// 列出将执行该命令的主机
ansible all -a "ls" --list-hosts
指定执行机器
单个机器
// 指定192.168.1/24段的所有机器
ansible 192.168.1.* -m ping
// 指定one two两台机器
ansible one.example.com:two.example.com -m ping
使用分组过滤
// 指定A组
A
// 指定A和B两个组
A:B
// 指定在A组但不在B组
A:!B
// 制定同时在A组和B组
A:&B
使用分组过滤时,遵循从左到右依次匹配,逐级过滤。