2016-10-21 9 views
2

私は複数の役割を収容脚本を実行しているが、目標はVMを展開し、それがアプリを展開するIPだ使用することです複数のホストAnsibleダイナミックインベントリ

を対象としています。

私の脚本

は、使用して、2つの役割を持っている第二の役割に変数IPADDR渡すとき、私はデバッグを経由してIPアドレスを表示することができるよ「build_vm」の役割は、まだ、Ansibleは、変数が定義されていないと文句を言い

- hosts: linux 
    become: true 

    roles: 
    - build_vm 

    - tasks: 
     - debug: msg="{{ ipaddr }}"  

- hosts: "{{ ipaddr }}" 
    roles: 
    - deploy_app 

私はset_factを使って同じ問題に遭遇しましたが、私はここで何を使うべきでしょうか?動的在庫?私はオンラインでまばらなドキュメントを検索しました。私は直感的な例を見つけることができません。

+1

[add_host](http://docs.ansible.com/ansible/add_host_module.html)モジュールをお読みください。 –

答えて

2

add_hostを使用する方法はたくさんあります。この例では、新しいホストをグループに追加し、それを後で再生する際に使用します。

- hosts: linux 
    become: true 

    roles: 
    - build_vm 

    - tasks: 
     - debug: msg="{{ ipaddr }}" 
     - name: Add ipaddr to host inventory 
     add_host: name="{{ ipaddr }}" group=NewHostGroup  

- hosts: NewHostGroup 
    roles: 
    - deploy_app