限制执行主机
在yml配置文件里,可以通过 --hosts: 来执行哪些主机会应用playbook的操作:
指定单台主机:172.28.7.239
指定多台主机:172.28.7.239,172.28.7.240
指定一组主机:my_app
也可以在执行命令的时候,通过 --limit 命令来限制:
这样即使playbook.yml里的 --hosts: all ,也会被 --limit 给覆盖,这里只有my_app 主机组受影响
查看受影响主机
想知道在执行 Playbook 时,哪些主机将会受影响,则使用--list-hosts 选项:
用户与权限设置
--remote-user
在 Playbook 中,如果在hosts字段下没有定义users关键字,那么 Ansible 将会使用在 Inventory 文件中定义的用户,如果 Inventory 文件中也没定义用户,Ansible 将默认使用当前 SSH 连接远程主机,在远程主机中运行 play 内容。也可以直接在 ansible-playbook中使用–remote-user 选项来指定用户:
--ask-sudo-pass
在某些情况下,我们需要传递 sudo 密码到远程主机,来保证 sudo 命令的正常运行。这时,可以使用–ask-sudo-pass(-K)选项来交互式的输入密码。
--sudo
使用–sudo 选项,可以强制所有play都使用 sudo 用户,同时使用–sudo-user 选项指定 sudo 可以执行哪个用户的权限,如果不指定,则默认以 root 身份运行。
比如,当前用户 Layne 想以 Tom 的身份运行 Playbook,命令如下:
执行过程会要求输入Tom的密码
--inventory=PATH(-i PATH)
指定 inventory 文件,默认文件是/etc/ansible/hosts。
--verbose(-v)
显示详细输出,也可以使用-vvvv 显示精确到每分钟的输出。
--extra-vars=VARS(-e VARS)
定义在 Playbook 使用的变量,格式为:”key=value,key=value”。
--forks=NUM(-f NUM)
指定并发执行的任务数,默认为 5,根据服务器性能,调大这个值可提高 Ansible 执行效率。
--connection=TYPE(-c TYPE)
指定连接远程主机的方式,默认为 SSH,设为 local 时,则只在本地执行 Playbook,建议不做修改。
--check
检测模式,Playbook 中定义的所有任务将在每台远程主机上进行检测,但并不直正执行。