Template 裡 for 回圈內的變數處理
ansible template 模組的範本可以使用 jinja2 語法,在一般應用上足敷使用,真的要當程式來寫,for 回圈要配置變數時,就會遇到問題了。
ansible template 模組的範本可以使用 jinja2 語法,在一般應用上足敷使用,真的要當程式來寫,for 回圈要配置變數時,就會遇到問題了。
依據 Discovering variables: facts and magic variables 這篇官方的文件, ansible_facts 裡有提供 ansible_lvm,可以查到 LVM 的資訊,但實際上執行以後,卻沒看到。
想為 List 裡的每個元素加字串,也就是原本是這樣的 List
my_list:
- apple
- banana
- watermelon
要讓輸出結果變為
new_list:
- "fruit: apple"
- "fruit: banana"
- "fruit: watermelon"
那該怎麼做呢?有好幾種方式可以作
Ansible 跟 IBM 合作推出了 Watson code assistant 以協助開發者撰寫 Ansible playbook,以下介紹一下怎麼使用。
安裝方法可以參考這篇:Installing the Ansible VS Code extension
這樣就可以使用了。
要作檔案的複製,可以用 copy ,這會走 SSH 協定;網站檔案上傳,可以用 uri 模組,參數帶入 POST method ,就可以上傳檔案。
那 FTP 檔案上傳,可以怎麼做呢?
要使用 Ansible 來連到 kubernetes,可以透過 kubernetes.core 這個 collection。
Angular/Vue 這類的前端框架,在執行 npm run build
建置以後,會產生 dist 的資料夾,裏面就是要佈署的檔案。一般會使用 tar czf dist.tar.gz dist
將該資料夾裡的檔案打包為 tarball。
使用 Ansible 佈署時,需要使用 unarchive 模組解壓縮,這時會直接解壓縮出 dist 目錄。
通常解法會有兩種,第一種是在打包時,先進入 dist 資料夾,再進行打包。
第二種方法就是本文要介紹的小技巧。
延續之前的安裝,接下來要安裝 microk8s。
環境有兩個 node,一個 master 一個是 worker。
用來確定檔案裡有指定文字片斷的模組,使用很簡單。
情境是這樣的,Playbook 在送出 HTTP 請求後,需要送出一個 HTTP 請求去持續詢問是否完成,如果還沒完成,就等待一段時間後,再去詢問,那這個情境下可以怎麼做呢?