ansible組件-playbook學習筆記

playbook的基礎組件

name

定義playbook或者task的名稱

hosts

用於指定要執行指定任務的主機

user

用於指定遠程主機上的執行任務的用戶

task

任務列表

vars

定義變量

vars_files

定義變量文件

notify

任務執行結果如果是發生更改的則觸發定義在handler的任務

handlers

用於當前關注資源發生變化時採取一定指定的操作

示例1

> # vim test.yml
> - hosts: all
>   user: root
>   tasks:
>   - name: playbook_test
>     shell: touch /a.txt
>     tags: chuang jian a.txt

參數解釋

hosts參數指定了對那些主機進行操作
user參數指定了使用什麼用戶登陸遠程主機操作
tasks指定了一個任務,其下面的name參數同樣是對任務的描述,在執行過程中會打印出來
tags給指定的任務定義一個調用標識

語法檢測

# ansible-playbook --syntax-check test.yml

測試運行

# ansible-playbook -C test.yml

運行playbook

# ansible-playbook test.yml

只運行指定標記的任務

-t tags
# ansible-playbook -t 標記名稱 test.yml

跳過某個被標記的任務

--skip-tags= 標記名稱
# ansible-playbook --skip-tags=標記名稱 test.yml

從某個任務開始往下運行

--start-at-task 任務名稱
# ansible-playbook --start-at-task "任務名稱" test.yml

示例2:使用變量

>#vim create_user.yml
>- name: create_user
>  hosts: web1
>  user: root
>  gather_facts: false
>  vars:
>  - user: "tuerqi"
>  tasks:
>  - name: create user
>    user: name="{{ user }}"

示例3:條件執行

># vim when.yml
>- hosts: web1
>  user:root
>  gather_facts: True
>  tasks:
>  - name: use when
>    shell: touch /bali.txt
>    when: ansible_hostname == "web1"

示例4:條件觸發

># vim handlers.yml
>- name: handlers test
>  hosts: web1
>  user: root
>  tasks:
>  - name: test copy
>    copy: src=/etc/passwd dest=/tmp/handlers.txt
>    notify: test handlers
>  hanlers:
>  - name: test handlers
>    shell: echo "www.lala.com" >> /tmp/handlers.txt

解釋說明

只有 copy 模塊真正執行後,纔會去調用下面的 handlers 相關的操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章