tasks直接舉例說明:docker
---
- host: docker
remote_user: root
gather_facts: yes
serial: 3 #表示同一時間控制主機數量(值能夠是數值/也能夠是百分比)shell
max_fail_percentage: 30 #最大失敗百分比 (舉個例子,若是在10個服務器中失敗數量多餘3個,其它的play就會主動宕掉)服務器
- tasks:
- name: create some file
file: name=/data/{{ item }} state=touch #這裏的{{ item }}會循環with_items列表值來建立文件。 即迭代
with_items: # 參數爲文件列表名
- file1
- file2
- file3app
- name: create users
user: name={{ item.name }} group={{ item.group }} # 同理,這裏建立對應的用戶並加入到指定屬組。 嵌套迭代
with_items:
- { name: "user1", group: "group1" }
- { name: "user2", group: "group2" }
- { name: "user3", group: "group3" }異步
- name: YUM - fire and forget task
yum: name=docker-io state=installed
async: 1000 #異步執行方式,若是不指定,默認爲同步執行方式。 1000表示最大超時時間,單位秒. async的值過小可能會致使稍後檢查任務執行失敗
poll: 0 # 輪詢查詢時間爲,若是未指定則默認爲10S,指定時間爲0,則表示不等待任務執行完畢
register: yum_sleeper # 註冊一個查詢任務async
- name: YUM - check on fire and forget task #實現查詢任務
async_status: jid={{ yum_sleeper.ansible_job_id }} #查詢狀態
register: job_result #查詢結果
until: job_result.finished #直到查詢到的結果爲結束
retries: 30 #嘗試查詢30次this
- name: take out off banlance pool
command: /opt/application/upgrade_db.py
run_once: yes # 只執行一次
delegate_to: 192.168.10.100 # 只在委任指定的ip主機執行spa
ignore_errors: yes #忽略失敗代理
- apt: name=cobbler state=installed
environment: #指定環境代理信息,代理信息也能夠存放在變量中
http_proxy: http://proxy.example.com:8080ip
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr" #控制對失敗的定義
- shell: /usr/bin/billybass --mode="take me to the river"
register: bass_result
changed_when: "bass_result.rc != 2" #覆寫change結果(ansible任務執行後會顯示task任務的狀態是否有change)