私はリモートノードから情報を収集するのに援助し、この情報を使用して関連するRPMを更新します。不可能 - 複数行の出力をファイルに書き込む
私が抱えている問題は、さまざまなアプリケーションのコレクションバージョン番号とファイルへの書き込みです。
脚本:
---
- 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 1.4.0 Kubernetes 1.4.0 Kubernetes 1.4.0 Kubernetes 1.4.0
をだから私は追加下の行:
- local_action: copy content={{ k8s_version.stdout_lines }} dest=/tmp/test
マイ/tmp/test
は、次のようになります。
# cat /tmp/test
["Kubernetes v1.4.0"]
ここには1つの値しかありません。
私は別の何かをしようとしました。私は私のインベントリ・ファイル内のすべてのノードのバージョンが表示されるはずのに対し、私は一つの値だけを参照してください理由を理解しようと
# cat /tmp/foo
Kubernetes v1.4.0
イム:
- local_action: lineinfile dest=/tmp/foo line="{{ k8s_version.stdout }}" insertafter=EOF
これがでました。私は間違って何をしていますか?
コピーモジュールは、ファイルの内容を上書きし – Luv33preet