標籤¶
如果你有一個大型的 playbook,那能夠只執行其中特定部分的配置而無需執行整個 playbook 將會很有用.
plays 和 tasks 都因這個理由而支援 “tags:”
例:
tasks:
- yum: name={{ item }} state=installed
with_items:
- httpd
- memcached
tags:
- packages
- template: src=templates/src.j2 dest=/etc/foo.conf
tags:
- configuration
如果你只想執行一個非常大的 playbook 中的 “configuration” 和 “packages”,你可以這樣做:
ansible-playbook example.yml --tags "configuration,packages"
另一方面,如果你只想執行 playbook 中某個特定任務 之外 的所有任務,你可以這樣做:
ansible-playbook example.yml --skip-tags "notification"
你同樣也可以對 roles 應用 tags:
roles:
- { role: webserver, port: 5000, tags: [ 'web', 'foo' ] }
你同樣也可以對基本的 include 語句使用 tag:
- include: foo.yml tags=web,foo
以上這樣也有對每個 include 語句中的單個任務進行標籤的功能.
See also
- Playbooks
- An introduction to playbooks
- Playbook Roles and Include Statements
- Playbook organization by roles
- User Mailing List
- Have a question? Stop by the google group!
- irc.freenode.net
- #ansible IRC chat channel