我使用ansible從遠程節點收集信息,然後使用此信息更新相關的RPM。Ansible - 將多行輸出寫入文件
我遇到的問題是各種應用程序的集合版本號並將它們寫入文件。
劇本:
---
- name: Check Application Versions
hosts: kubernetes
tasks:
- name: Check K8S version.
shell: kubectl --version
register: k8s_version
- debug: msg="{{ k8s_version.stdout }}"
庫存文件:
[kubernetes]
172.29.219.102
172.29.219.105
172.29.219.104
172.29.219.103
輸出:
TASK [debug] *******************************************************************
ok: [172.29.219.102] => {
"msg": "Kubernetes v1.4.0"
}
ok: [172.29.219.103] => {
"msg": "Kubernetes v1.4.0"
}
ok: [172.29.219.105] => {
"msg": "Kubernetes v1.4.0"
}
ok: [172.29.219.104] => {
"msg": "Kubernetes v1.4.0"
}
上面部分是簡單和作品。現在我想將輸出寫入文件。
現在我嘗試將此信息寫入一個file.I想是這樣的:
所以我添加
Kubernetes V1.4.0 Kubernetes V1.4.0 Kubernetes V1.4.0 Kubernetes V1.4.0下面一行:
- local_action: copy content={{ k8s_version.stdout_lines }} dest=/tmp/test
我/tmp/test
樣子:
# cat /tmp/test
["Kubernetes v1.4.0"]
這裏只有一個值。
我試圖做一些不同的事情。
- local_action: lineinfile dest=/tmp/foo line="{{ k8s_version.stdout }}" insertafter=EOF
這導致:
# cat /tmp/foo
Kubernetes v1.4.0
我試着去弄清楚爲什麼我只看到一個值,而我看到在我的清單文件中的每個節點的版本。我究竟做錯了什麼?
複製模塊覆蓋該文件內容 – Luv33preet