ansible命令详解

查看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

使用分组过滤时,遵循从左到右依次匹配,逐级过滤。

posted @ 2018-03-20 09:57  Suraer  阅读(4874)  评论(0编辑  收藏  举报