blockinfile
用來確定檔案裡有指定文字片斷的模組,使用很簡單。
用來確定檔案裡有指定文字片斷的模組,使用很簡單。
情境是這樣的,Playbook 在送出 HTTP 請求後,需要送出一個 HTTP 請求去持續詢問是否完成,如果還沒完成,就等待一段時間後,再去詢問,那這個情境下可以怎麼做呢?
以前我不知道有 script 模組,所以要執行自己的腳本,都是先把腳本複製過去,再用 shell/command 去執行。
debug 模組的用途,顧名思義就是除錯用的,一般用來在 playbook 裡列印變數內容,或是指定的訊息。在預設的情況下,模組只會有狀態的輸出, 像是 changed, ignored 等等的,使用 debug 模組,就可以印出變數內容或者是運算式的結果。基本上就把他想做是 bash 裡的 echo,或是 python 裡的 print。
oc start-build
是 OpenShift 裡很方便的一個指令,事先建立好 build config 以後,就可以用 start-build 來指示 openshift 來幫忙建置,在建置完成以後,就自動完成佈署了。
等等,那 oc start-build
不是直接用 command/shell 模組就可以完成了嗎?為什麼還需要特別寫?
這是因為使用指令的話,在同時執行多個工作時,在後續的 oc get
會有些問題,所以才想去試試。
在某些情況需要讀取檔案內容,例如送出 HTTP POST 請求,或者是需要對內容編碼,那麼可以怎麼去寫 Playbook 呢?
copy 可以把檔案複製到連線的主機去。
shell 是用來執行指令用的,等等,command 不也一樣嗎?。
對,其實大同小異,但有個很重要的差別,就是 pipe 或重導向 。 command 只能執行單一個指令,若需要作 pipe 串接或重導向時,就需要用到 shell 了。
command 是用來執行指令用的。
ansible.builtin.assert 這個模組可以用來檢查是否滿足指定的條件,不滿足的時候,會發生錯誤並離開。
用法很簡單,在 that 裡指定條件式即可。