2017-03-25 8 views
0

私の放浪のファイルに適用:プレイブックは、すべてのボックスに

Vagrant.configure('2') do |config| 
    config.vm.define "master" do |node_dotnet| 
    node_dotnet.vm.provider :azure do |azure, override| 
      .... 
     end 
    end 

    config.vm.provision "ansible" do |ansible| 
    ansible.playbook = "playbook1.yml" 
    end 

    v1.times do |i| 
    config.vm.define "random#{i}" do |nodes_py| 
     nodes_py.vm.provider :azure do |azure, override| 
      .... 
     end 
    end 
    config.vm.provision "ansible" do |ansible| 
     ansible.playbook = "playbook2.yml" 
    end 
    end 
end 

をしかし、両方のプレイブックは、すべてのボックスの数倍に適用されています。 ¿この問題を解決するには?

なぜ2つの問題があるのですか?プレイブックは何回か適用されますが、なぜそれらはすべてのボックスに適用されますか?

答えて

0

設定レベルでAnsibleプロバイダ(2回)を定義したため、すべてのマシンに適用されています。

インデントレベルを確認しても明らかです(これはVagrantファイルには関係ありません)。

Vagrant.configure('2') do |config| 
    config.vm.define "master" do |node_dotnet| 
    node_dotnet.vm.provider :azure do |azure, override| 
      .... 
     end 
    node_dotnet.vm.provision "ansible" do |ansible| 
     ansible.playbook = "playbook1.yml" 
    end 
    end 

    v1.times do |i| 
    config.vm.define "random#{i}" do |nodes_py| 
     nodes_py.vm.provider :azure do |azure, override| 
      .... 
     end 
     nodes_py.vm.provision "ansible" do |ansible| 
     ansible.playbook = "playbook2.yml" 
     end 
    end 
    end 
end 
関連する問題