Amazon-Web-Services
cloud-config 的 write_files 可以控製文件是否附加換行符嗎?
我想在 AWS 上的使用者數據中使用 cloud-config 來編寫一個文件,比如 /etc/myfile。到目前為止,我的實驗似乎表明,如果
write_files
塊是使用者數據的最後一位,則不會將尾隨換行符寫入結果文件,而如果後面還有其他配置位,則將換行符附加到文件中。例如:#cloud-config write_files: - path: "/etc/myfile" permissions: "0444" owner: "root" content: | hello - path: "/etc/myfile2" permissions: "0444" owner: "root" content: | hello
…將生成兩個文件。但它們會有不同的內容:
[me@ip-172-31-40-207:~]$ cat /etc/myfile hello [me@ip-172-31-40-207:~]$ cat /etc/myfile2 hello[me@ip-172-31-40-207:~]$
除了手動確保
write_files
永遠不會在底部之外,有沒有辦法控制是否添加換行符,這是否記錄在任何地方?
結果是管道 (
|
) 導致了它,再加上我在輸入中省略了尾隨換行符這一事實。所以解決方案是省略管道,導致兩個文件都被寫入而沒有尾隨換行符。管道的意思是“維護以下文本塊的格式”,cloud-init 正確地做到了這一點,包括換行符。因為我省略了尾隨空格(即上例中的最後一個換行符),所以
myfile2
沒有尾隨換行符。