Ansible Ad-Hoc命令

  • -a:传入模块的参数,不同的模块要传入的参数不同
  • -B SECOND:当任务放到后台执行异步任务,设置程序运行的超时时间,传入的是一个数值,单位秒
  • -C:测试该任务能否正常运行,不对被管理主机做出任何影响
  • -D:对比模板文件是否改变,如果有改变就显示出哪里发生了变化
  • -e EXTRA_VARS:添加额外的变量,在单用户模式用的比较少,一般在json和yaml文件中使用
  • -f:设置并发执行进程数
  • -i:指定inventory主机清单文件
  • -l:限制执行的主机组或者主机
  • --list-hosts:打印出该任务执行会影响到的主机列表,不执行该任务
  • -m:指定ansible命令调用的模块的名字
  • -M MOUDLE_PATH:指定模块库文件的存放路径
  • -P:当程序在后台运行的时候设置定时检查,每隔一段时间去检查任务执行状态,单位秒
  • -t:指定日志输出路径
  • -v:查看任务执行的详细输出,相当于debug调试
  • -k:在运行任务之前提示用户输入密码
  • --private_key:指定私钥文件
  • -u:指定远程连接执行任务的用户
  • -c:指定连接方式,默认smart
  • -T TIMEOUT:设置超时时间
  • -s:通过sudo来执行任务
  • -U:设置sudo用户
  • -S:使用--su来执行
  • -R:指定--su的用户
  • -b:run operations with become(does not imply password prompting)运行操作成为(不暗示密码提示)

注:-a参数后的命令用单引号,单引号,单引号;双引号有可能会出问题,特别是在user模块;

异步执行

ansible all -m ping -B 3600 -P 0

172.16.1.11 | SUCCESS => {
    "ansible_job_id": "827931270385.17901", 
    "changed": true, 
    "finished": 0, 
    "results_file": "/root/.ansible_async/827931270385.17901", 
    "started": 1
}
172.16.1.10 | SUCCESS => {
    "ansible_job_id": "253754505233.18739", 
    "changed": true, 
    "finished": 0, 
    "results_file": "/root/.ansible_async/253754505233.18739", 
    "started": 1
}

  当Ansible后台执行程序的时候会给我们一个ansible_job_id,以便我们随时可以去查看程序执行的状态:

ansible all -m async_status -a "jid='253754505233.18739'"

172.16.1.10 | SUCCESS => {
    "ansible_job_id": "253754505233.18739", 
    "changed": false, 
    "finished": 1, 
    "ping": "pong"
}
posted @ 2019-01-19 20:45  StaryJie  阅读(508)  评论(0编辑  收藏  举报