ansible-playbook-命令

ansible-playbook常用命令

限制执行主机

在yml配置文件里,可以通过 --hosts: 来执行哪些主机会应用playbook的操作:
指定单台主机:172.28.7.239
指定多台主机:172.28.7.239,172.28.7.240
指定一组主机:my_app

也可以在执行命令的时候,通过 --limit 命令来限制:

1
# ansible-playbook playbook.yml --limit my_app

这样即使playbook.yml里的 --hosts: all ,也会被 --limit 给覆盖,这里只有my_app 主机组受影响

查看受影响主机

想知道在执行 Playbook 时,哪些主机将会受影响,则使用--list-hosts 选项:

1
# ansible-playbook playbook.yml --list-hosts

用户与权限设置

--remote-user

在 Playbook 中,如果在hosts字段下没有定义users关键字,那么 Ansible 将会使用在 Inventory 文件中定义的用户,如果 Inventory 文件中也没定义用户,Ansible 将默认使用当前 SSH 连接远程主机,在远程主机中运行 play 内容。也可以直接在 ansible-playbook中使用–remote-user 选项来指定用户:

1
# ansible-playbook playbook.yml --remote-user=Layne

--ask-sudo-pass

在某些情况下,我们需要传递 sudo 密码到远程主机,来保证 sudo 命令的正常运行。这时,可以使用–ask-sudo-pass(-K)选项来交互式的输入密码。

--sudo

使用–sudo 选项,可以强制所有play都使用 sudo 用户,同时使用–sudo-user 选项指定 sudo 可以执行哪个用户的权限,如果不指定,则默认以 root 身份运行。
比如,当前用户 Layne 想以 Tom 的身份运行 Playbook,命令如下:

1
# ansible-playbook playbook.yml --sudo --sudo-user=tom --ask-sudo-pass

执行过程会要求输入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 中定义的所有任务将在每台远程主机上进行检测,但并不直正执行。