tips

為 List 裡的每個元素加字串

想為 List 裡的每個元素加字串,也就是原本是這樣的 List

my_list:
  - apple
  - banana
  - watermelon

要讓輸出結果變為

new_list:
  - "fruit: apple"
  - "fruit: banana"
  - "fruit: watermelon"

那該怎麼做呢?有好幾種方式可以作

解壓縮只取第二層目錄以下的檔案與目錄

Angular/Vue 這類的前端框架,在執行 npm run build 建置以後,會產生 dist 的資料夾,裏面就是要佈署的檔案。一般會使用 tar czf dist.tar.gz dist 將該資料夾裡的檔案打包為 tarball。

使用 Ansible 佈署時,需要使用 unarchive 模組解壓縮,這時會直接解壓縮出 dist 目錄。

通常解法會有兩種,第一種是在打包時,先進入 dist 資料夾,再進行打包。

第二種方法就是本文要介紹的小技巧。

小技巧 - Inventory 格式的轉換

Inventory 就是主機清單,裏面描述主機的連線資訊,一般文件常用的是 ini 格式。

但在 DO447 的第二章有提到 inventory 格式的轉換,我自己是比較熟悉 ini 格式的 inventory,所以對於要轉換為 YAML 格式的地方就覺得比較卡頓。

那該怎麼克服呢?我臨機一動,想到 ansible 有提供 ansible-inventory 指令,用這個就可以解決我的問題。

祕訣 - 關於 ansible.cfg

這是我在前兩天在寫 DO447 練習題時所發現的一個小技巧,覺得非常實用,特別是在無法上網查詢的時候。

ansible.cfg 是 ansible 預設會去讀取的設定檔,裏面可以設定很多,例如:

祕訣 - 關於 lookup

你可以使用 ansible-doc -t lookup -l 列出所有可用的 lookup plugins。

找到以後,就可以用 ansible-doc -t lookup <the_plugin> 來看它的用法。