0
我有一個遠程計算機上的一個配置文件的格式爲:如何通過Ansible插入遠程計算機上文件內的變量?
key1={{key1}}
key2={{key2}}
我想用Ansible從group_vars值來填充鍵的值。
如何讀取此文件,插入內容並將文件寫回?
我不想使用模板,因爲不同的配置文件將有不同的鍵,我對模板的理解是我必須事先知道我需要哪些鍵。
我有一個遠程計算機上的一個配置文件的格式爲:如何通過Ansible插入遠程計算機上文件內的變量?
key1={{key1}}
key2={{key2}}
我想用Ansible從group_vars值來填充鍵的值。
如何讀取此文件,插入內容並將文件寫回?
我不想使用模板,因爲不同的配置文件將有不同的鍵,我對模板的理解是我必須事先知道我需要哪些鍵。
給你(但我不認爲這是你應該如何管理系統):
---
- hosts: target
vars:
key1: "value1"
key2: "value2"
tasks:
- command: cat /path/to/file
register: cat_file
- copy:
content: "{{ cat_file.stdout }}\n"
dest: /path/to/file
有與尾部的換行符,這是不是在stdout
從cat
反映問題。我認爲它應該被添加。
或者:
---
- hosts: target
vars:
key1: "value1"
key2: "value2"
tasks:
- fetch:
src: /path/to/file
dest: ./tmp/file
- template:
src: ./tmp/file
dest: /path/to/file
與第一提出的解決方案,我的輸出文件有以下內容: – vovel
鍵1 = {#KEY1#} \ n鍵2 = {#KEY2#}。爲什麼這些散列標記會放在那裏以及爲什麼插值不起作用? – vovel
我怎麼知道?我並不坐在電腦前。我用Ansible 2.2.2進行了測試,並沒有逃脫字符串。如果它不適合你,你應該解釋爲什麼,而不是我。另外,我並不是特別喜歡這個,所以我提出了第二種更可靠的方法。 – techraf