- 撰寫 YAML 腳本 sh1.yml,對主機 dev 執行任務,要求如下:
- 使用 shell 模組,切換到 dir 目錄,dir 變數由 ansible-playbook 命令列外加參數決定。
- ansible-playbook 執行時變數 dir 用 /usr/local 測試看看。
- 執行 grep ID /etc/os-release,並導向到 os.txt,若 os.txt 存在,則覆蓋其內容。
- 修改腳本 sh1.yml 為 sh2.yml,對 prod 及 balancers 主機使用 shell 模組:
- 切換到 dir 目錄,dir 變數由 ansible-playbook 命令列外加參數決定。
- ansible-playbook 執行時變數 dir 用 /tmp 測試看看。
- 執行 grep ID /etc/os-release,並導向到 os.txt,若 os.txt 存在,則覆蓋其內容。
- 但只有 /dev/vda5 存在的主機才執行 shell 任務。
-
提示:使用變數
ansible_devices.vda......,變數名稱用 setup 模組查詢。
-
提示:判斷
ansible_devices.vda...... is defined 或 is not defined。
- 撰寫 shell1a.yml,對所有主機執行修改任務,要求如下:
- 使用 shell 模組,當主機為 dev 時才將其 /etc/issue 內容修改為
Development IPV4。
- 其中 IPV4 以變數
ansible_default_ipv4..... 取得主機 ipv4 的 IP。
- 撰寫 shell2a.yml,對所有主機執行修改任務,要求如下:
- 使用 shell 模組在 dev, test, prod 群組主機的 /etc/domain,寫入不同字串
XXXX YYYY。
- 其中 XXXX 在 dev, test, prod 分別為 Development, Test, Production。
- YYYY 為網域名稱,使用變數
ansible_domain 取得。
- 修改腳本 sh2.yml 為 sh3.yml,對 prod 及 balancers 主機使用 shell 模組:
- 切換到 dir 目錄,dir 變數由 ansible-playbook 命令列外加參數決定。
- ansible-playbook 執行時變數 dir 用 /opt 測試看看。
- /dev/vda5 存在的主機,執行 shell 任務 grep ID /etc/os-release,並導向到 id.txt。若 id.txt 存在,則覆蓋其內容。
- /dev/vda5 不存在的主機,執行 shell 任務 grep ID /etc/profile,並導向到 id.txt。若 id.txt 存在,則覆蓋其內容。
-
提示:使用變數
ansible_devices.vda......,變數名稱用 setup 模組查詢。