ansible -m -a ""# in Playbook
- name: restart webservershosts: webservers
Description | Pattern(s) | Targets |
---|---|---|
所有主机 | all(or *) | |
一个主机 | host1 | |
多主机 | host1:host2(or hots1,host2) | |
一个组 | webservers | |
多组 | webservers:dbservers | hosts in webserver + hosts in dbservers |
排除组 | webservers:!atlanta | hosts in webservers not in atlanta |
交集组 | webservers:&staging | hosts not only in webserver but also in staging |
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: Could not match supplied host pattern, ignoring: *.not_in_inventory.com
[WARNING]: Could not match supplied host pattern, ignoring: 127.0.0.2
# ansible-playbook 通过 -e 可以接受变量,在pattern中使用: {{ 变量 }}webservers:!{{ excluded }}:&{{ required }}
[webservers]
cobweb
webbing
weber# 通过下标切割选择对应的组
webservers[0] # == cobweb
webservers[-1] # == weber
webservers[0:2] # == webservers[0],webservers[1]# == cobweb,webbing
webservers[1:] # == webbing,weber
webservers[:3] # == cobweb,webbing,weber
# 以 ~ 开始的模式将会被认定为正则表达式
~(web|db).*\.example\.com
hosts: all
,但在命令行中指定 -i 127.0.0.2
, 命令行会覆盖 playbook 中的定义。 这种方式甚至在 Inventory 中没有定义目标主机都可行。# 可以使用 --limit 标识指定特定的目标主机
ansible-playbook site.yml --limit datacenter2# 可以使用 --limit 从一个文件中读取主机列表, 使用时在文件名前加 @
ansible-playbook site.yml --limit @retry_hosts.txt# 如果 RETRY_FILES_ENABLED 设置 True, 当 ansible-playbook 执行失败的主机记录到以 retry 结尾的文件中。这个文件在每次 ansible-playook 执行结束后都会被覆盖。
ansible-playbook site.yml –limit @site.retry
下一篇:2023秋招前端面试必会的面试题