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"
}