各位前輩先進安安,
最近在撰寫playbook遇到些問題,想要做個防呆條件,以防其他維護人員誤用於其他os版本(如ubuntu),比較笨的方法於每個子任務下方添加when判斷版本,假如子任務有個20~30項勢必會弄到天荒地老,請教有無比較省事作法?
目前思路例如:
1.前面第一個任務判斷版本如判斷成功執行後續任務,失敗則停止playbook
2.可以套用全局條件方式控制全部子任務有相同判斷條件,條件如下
when:
- ansible_facts.distribution == "Rocky"
- ansible_facts.distribution_major_version == "9"
以下為範例,謝謝各位回覆.
---
- name: Deploy Rocky9 Environment for remote probe
hosts: "{{ server }}"
tasks:
- name: check hostname
command: hostname
register: hostname_check
- name: configure hostname
hostname:
name: "{{ server }}"
wheh: hostname_check.stdout !="{{ server }}"
.......
你可以 Tree 你的專案,讓我們知道你是怎麼設計的嗎?
我之前要部署10台不同OS的 sql 的時候,我是看這位大大的,我懶得再去重溫
我只記得他是先把 var先定義好,然後在一開始就判斷,你可以拉下來跑看看。
https://github.com/geerlingguy/ansible-role-mysql
https://galaxy.ansible.com/geerlingguy/mysql
關於人的問題,我一律建議解決人