2016-08-31 3 views
0

インベントリファイルはどうすれば複数のグループ内の1つのホスト

[dev:vars] 
dev6 
dev7 

[dev6] 
targethost1.xyz.com 
[dev7] 
targethost1.xyz.com 

host_variables.yml

dev6: 
    deploy_domain: "Dev6Domain" 
    WL_Admin: "DEV6WLAdmin" 
    WL_Managed: "DEV6Managed" 

dev7: 
    deploy_domain: "Dev7Domain" 
    WL_Admin: "Dev7WLAdmin" 
    WL_Managed: "Dev7Managed" 

ためset_fact変数を克服することができ、私はで脚本からmyenv.deploy_domainを抽出しようとしていますコマンド使用する

tasks: 
- include_vars: host_variables.yml 
- set_fact: 
    my_env: "{{ hostvars[inventory_hostname][group_names[1]] }}" 

dev6とdev7は同じホストを共有しますが、異なるドメインとdiffere nt他の変数はhost_variables.ymlで定義されています。だから私はdev7のための演劇を実行すると、my_env.deploy_domain私にdev6の値を示しています。このコードは、現在の環境の変数だけを取り出し、その特定のホスト名とインベントリを一致させるように指示するにはどうすればよいですか?さて、同じホストと異なる環境のために共有され

+0

targethost1.xyz.comは、ドメイン、その完全なホスト名ではありません。 deploy_domainは、各マシンへの展開用の変数(パラメータ)です。 – Jninja

+0

Anabilitiesは、メンバーであるインベントリグループの数にかかわらず、同じホストに対して同じプレイブックを2回実行することはありません。異なるホスト名を使用し、 '/ etc/hosts'やDNSの中の同じIPアドレスを指し示す必要があります。 – techraf

+0

それ以外の場合は、競合する名前の変数の代わりにリストを使用するように、プレイブックを書き直す必要があります。 – techraf

答えて

0
[dev:vars] 
dev6 
dev7 

[dev6] 
dev6host ansible_ssh_host=targethost1.xyz.com 
[dev7] 
dev7host ansible_ssh-host=targethost1.xyz.com 

は、別々のマシンとしてansible扱い、それらのすべて

関連する問題