ansible-playbook運行步驟調度
官方大致提供如下幾個特性:對於測試或調試新的playbook很有幫助.
1:tag
2:start-at
3:skip-tags
4:step
Demo playbook:
---
- name: shutdown etcd
service: name=etcd state=stopped enabled=no
ignore_errors: yes
tags:
- shutdown
- name: del etcd dir
shell: 'rm -rf {{ item }}'
with_items:
- { ETCD_DIR }
tags:
- deldir
- name: create etcd dir
file:
path: '{{ item }}'
state: directory
mode: 755
with_items:
- { ETCD_DIR }
tags:
- mkdir
tag 示例:
如果你只想運行 playbook 中的”shutdown”和”mkdir”,你可以這樣做
ansible-playbook example.yml – tags “shutdown,mkdir”
tag 特性是一個不錯的功能,但如果真的是要維護一個大型的 playbook,還是建議將 playbook 按功能或應用拆分成多個 playbook,然後再在主 playbook include 其他子 playbook,這樣即既利於維護也方便管理.
start-at 示例
從指定任務開始運行palybook以及分步運行playbook,如果你想從指定的任務開始執行playbook,可以使用–start-at
選項:
以下命令就會在名爲”deldir”的任務開始執行你的playbook.
ansible-playbook playbook.yml --start-at="deldir"
skip-tags 示例
如果你只想執行 playbook 中某個特定任務之外的所有任務,你可以這樣做:
ansible-playbook example.yml – skip-tags “deldir”
分步運行playbook 示例
可以通過–step
選項來交互式的執行playbook,ansible在每個任務前會自動停止,並詢問是否應該執行該任務.
ansible-playbook playbook.yml --step
比如你有個名爲``deldir``的任務,playbook執行到這裏會停止並詢問:
Perform task: deldir (y/n/c):
“y”回答會執行該任務,
”n”回答會跳過該任務,
而”c”回答則會繼續執行剩餘的所有任務而不再詢問你.