2017-07-19 3 views
1

にタスク出力で「セットアップ」の出力を組み合わせますJSON形式。非常に便利。Ansibleは、私は現在、このコマンドを使用して、すべての私のホストについての事実を収集JSON

私のホストは多くのKVMホストで構成されていますので、出力にはそれぞれvirt/list_vmsの出力を追加します。

Iが小さなハンドブック作成:私は好ましくfactsとの出力を組み合わせ、JSON形式であるため、出力を希望

ansible-playbook -v status.playbook.yml -s 

:私はこのように、このハンドブックを実行

hosts: myhost 

tasks: 
    - name: VM list checker 
    virt: 
     name: list the VMs 
     command: list_vms 

list_vms

組み合わせた情報を使って同様のレイアウト(JSONのホストあたりoutディレクトリに1つ)を作成するにはどうすればよいですか?

答えて

1

私はこの思い付いた:

--- 
- hosts: kvm_hosts 
    gather_facts: no 
    tasks: 
    - setup: 
     register: setup_res 
    - virt: "command=list_vms" 
     register: cmd_res 
    - copy: 
     content: "{{ setup_res | combine(cmd_res) | to_nice_json }}" 
     dest: /tmp/out/{{ inventory_hostname }}.json 
     delegate_to: localhost 
1

あなたはこのような何かを行うことができます。

--- 
- hosts: all 
    gather_facts: no 
    tasks: 
    - setup: 
     register: setup_res 
    - command: echo ok 
     register: cmd_res 
    - file: 
     path: /tmp/out/{{ inventory_hostname }} 
     state: directory 
     delegate_to: localhost 
    - copy: 
     content: "{{ setup_res | to_nice_json }}" 
     dest: /tmp/out/{{ inventory_hostname }}/facts.json 
     delegate_to: localhost 
    - copy: 
     content: "{{ cmd_res | to_nice_json }}" 
     dest: /tmp/out/{{ inventory_hostname }}/cmd.json 
     delegate_to: localhost 

virtcommand呼び出しを置き換えます。 @KonstantinSuvorovからの入力を使用して

+0

これは素晴らしいスタートです!ありがとうございます、私は 'register'オプションの詳細を読んでいます。 – RobAu

関連する問題