2017-01-17 1 views
1

ipaddressesという変数をvsphere_guestにします。 vSphereで最初に仮想マシンの名前を使用してIPアドレスを取得し、IPアドレスを使用してそのマシンでAnsibleプレイを実行したいとします。vsphere_guestからipaddresses変数を使用すると、プレイブックになりますか?

これまでのところ、私が持っている:

- hosts: localhost 
    gather_facts: false 

    vars_prompt: 
    - name: "inventory_hostname" 
     prompt: "Enter virtual machine name" 
     private: no 
     default: "ansible-test" 


    vars: 
    vcenter_hostname: '192.168.250.1' 
    vcenter_user: 'root' 
    vcenter_pass: 'pass' 

    tasks: 
    - vsphere_guest: 
     vcenter_hostname: "{{ vcenter_hostname }}" 
     username: "{{ vcenter_user }}" 
     password: "{{ vcenter_pass }}" 
     guest: "{{ inventory_hostname }}" 
     vmware_guest_facts: yes 
     validate_certs: no 
     register: vsphere_facts 

どのように進めるべき?あなたはipaddresses変数を得た(と1つのIPアドレスを持っているか、それがリストの最初のIPアドレスを使用して到達可能だ)する仮想マシン上で別の遊びを実行したいと仮定すると、

+0

_Launchインスタンスを参照し、いくつかのタスクを実行します。例:[ec2 module](http://docs.ansible.com/ansible/ec2_module.html) –

答えて

3

、あなたの脚本を続けることができます。

- hosts: localhost 
    gather_facts: false 

    vars_prompt: 
    - name: "inventory_hostname" 
     prompt: "Enter virtual machine name" 
     private: no 
     default: "ansible-test" 

    vars: 
    vcenter_hostname: '192.168.250.1' 
    vcenter_user: 'root' 
    vcenter_pass: 'pass' 

    tasks: 
    - vsphere_guest: 
     vcenter_hostname: "{{ vcenter_hostname }}" 
     username: "{{ vcenter_user }}" 
     password: "{{ vcenter_pass }}" 
     guest: "{{ inventory_hostname }}" 
     vmware_guest_facts: yes 
     validate_certs: no 
     register: vsphere_facts 

    - name: Ensure virtual machine is in the dynamic inventory 
     add_host: 
     name: "{{ vsphere_facts.ansible_facts.hw_eth0.ipaddresses[0] }}" 
     ansible_user: _______ 
     ansible_ssh_private_key_file: _______ 
     groups: virtual_machines 

- name: A play to be run on the virtual machine 
    hosts: virtual_machines 
    tasks: 
    - debug: 
+0

' - debug:var = vsphere_facts.ipaddresses' - ' debug:var = vsphere_facts.ipaddresses [0] ' – techraf

+0

私はあなたの提案を答えに組み込み、質問をロールバックしました。質問に答えが含まれていればちょっと面倒です。最終的にそれはあなたのために働いてうれしい。デバッグとの協力のおかげで、私は現時点でvSphereをテストしていませんでした。 – techraf

関連する問題