本站介紹

本網站以 GitLab Pages / Hugo 建置。

介紹 Ansible 的使用與心得分享。

如何判別 Linux 發行版

Task 要依據 Linux 發行版來處理,該怎麼做呢?

這些資訊在 gather_facts 後,會放到 ansible_facts 裡,在寫 task 時,就可以直接使用。

主要的變數有這幾個:

  • ansible_distribution: 發行版名稱,例如 “CentOS”
  • ansible_distribution_major_version: 發行版主要版號,例如 “7”
  • ansible_distribution_version: 發行版版本,例如 “7.5.1804”
  • ansible_os_family: 發行版家族名稱,例如 CentOS 的 ansible_os_family 會是 RedHat

要看 ansible_facts 還有哪些變數可使用,可以參考 Discovering variables: facts and magic variables — Ansible Documentation

Module 預設值 - module defaults

前一陣子在撰寫 playbook 操作 OpenShift 時,常常模組是同一個,裏面的 kubeconfig 是固定的,寫起來就很重複。 在以前不知道有 module_defaults 的時候,都是用變數來處理。現在知道有 module_defaults 以後,就可以用這個語法來處理了。

如何執行 oc start-build

oc start-build 是 OpenShift 裡很方便的一個指令,事先建立好 build config 以後,就可以用 start-build 來指示 openshift 來幫忙建置,在建置完成以後,就自動完成佈署了。

等等,那 oc start-build 不是直接用 command/shell 模組就可以完成了嗎?為什麼還需要特別寫? 這是因為使用指令的話,在同時執行多個工作時,在後續的 oc get 會有些問題,所以才想去試試。