前情提要
我們從昨天的 layout 開始,
├── ansible.cfg
├── inventory
├── main.yml
└── roles
└── hello_world
├── tasks
│ └── main.yml
└── vars
└── main.yml
昨天講過了最基礎的 ansible.cfg
和 inventory
的內容
並且從 ansible -m ping all
知道所有 remote host 都能 ssh 連上,
(雖然現在只有一個 remote host)
至少驗證了 ansible.cfg
和 inventory
是可用的
今天的目的就是再把 hello_world
這支 playbook 打通,
不囉嗦直接上內容
先看 main.yml
---
- name: main task
hosts: staging
roles:
- role: hello_world
它要做的事很簡單,
就是去執行 hello_world
這支 role,
以後我們有新的 role 時,
直接往下面一行加就好
再看 roles/hello_world/tasks/main.yml
長這樣
---
- name: show remote host
debug:
msg: "the remote server is {{ ansible_host }}"
- name: show vars of this playbook
debug:
msg: "{{ greeting }}"
它做兩件事,第一件事是打印出 remote server name,
驗證我們真的 ssh 到遠端 server 做事;
第二件事是打印出 greeting
這個參數,
這個參數我們還沒定義,
馬上就來做
最後看 roles/hello_world/vars/main.yml
greeting: "hello ansible-playbook"
甚至簡單到只有一行,
內容非常直觀,
我們簡單地匹配了 tasks
要作的事,
及其會用到的 vars
相關參數,
至此,
我們預期運作最外面的 main.yml
之後發生兩件事,
hello ansible-playbook
壓下ansible-playbook main.yml
,
且看結果
今天就先醬,
好期待中秋連假~
在想為複雜一點的 ansible playbook + awx 要寫什麼 demo 呢?