iT邦幫忙

0

ansible-playbook 條件設定

rudy 2023-08-03 10:47:271562 瀏覽
  • 分享至 

  • xImage

各位前輩先進安安,

最近在撰寫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 }}"

.......

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
狗狗兔兔
iT邦新手 3 級 ‧ 2023-08-06 11:47:45
最佳解答

你可以 Tree 你的專案,讓我們知道你是怎麼設計的嗎?

我之前要部署10台不同OS的 sql 的時候,我是看這位大大的,我懶得再去重溫
我只記得他是先把 var先定義好,然後在一開始就判斷,你可以拉下來跑看看。
https://github.com/geerlingguy/ansible-role-mysql

https://galaxy.ansible.com/geerlingguy/mysql

關於人的問題,我一律建議解決人

rudy iT邦新手 5 級 ‧ 2023-08-09 10:57:03 檢舉

午安,後續使用第一種思路,設定條件用fail module解決問題,謝謝協助.

ps 建議解決人 說得真好

我要發表回答

立即登入回答