2017-04-01 7 views
2

私は以下のフォルダ構造を持っています。これは役割を構築してロードするように見えますが、グループとホスト変数はロードされていません。どうして?host_varsとgroup_varsがロードされていません

の/ etc/ansible/

- hosts 
- requirements.yml 
- group_vars/ 
    - app/ 
     - postgres.yml 
- host_vars/ 
    - app1/ 
     - postgres.yml 
- roles 

/文書/ ansible/

- playbook.yml 
- vagrant 

ホストファイル

# Application servers 
[app] 
192.168.60.6 

# Group multi 
[multi:children] 
app 


#variables applied to all servers 
[multi:vars] 
ansible_ssh_user=vagrant 
ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key 

**浮浪者**デフォルトで

# -*- mode: ruby -*- 
# vi: set ft=ruby : 


Vagrant.configure("2") do |config| 

    # Genral Vagrant VM Configuration. 
    config.vm.box = "geerlingguy/centos7" 
    config.ssh.insert_key = false 
    config.vm.synced_folder ".", "/vagrant", disabled: true 
    config.vm.provider :virtualbox do |v| 
    v.memory = 256 
    v.linked_clone = true 
    end 

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

# Application server 1 
config.vm.define "app1" do |app| 
    app.vm.hostname = "orc-app1.dev" 
    app.vm.network :private_network, ip: "192.168.60.6" 
end 

end 

答えて

1

ベイグラントは.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventoryで、独自の、自動生成されたインベントリファイルを使用しています。

あり、自動生成されたもの以外のインベントリファイル/ディレクトリを指すようにベイグラント内のオプションansible.inventory_pathですが、ベイグラントはそれを完全に認識していないので、あなたは、Vagrantfile/etc/ansible/hostsを指すようにそれを使用しないでください。同様に、/etc/ansibleにはhost_varsgroup_varsがありません。一方


、役割へのパスは、インベントリファイルで上書きされていないので、ベイグラントは独自のものを使用するという事実は、役割のパスに影響を与えません。

デフォルトでは/etc/ansible/roles(またはMacOSではAnabilitiesがデフォルトとして使用するディレクトリ、たとえば/usr/local/etc/ansible/roles)からロードされます。

+0

私は 'host_vars'と' group_vars'をplaybook.ymlフォルダにコピーする必要がありますか?どのように私は '/ etc/ansible/hosts'を迷惑メールファイルに指摘しますか? –

+0

私はあなたが何を必要としているかわからないので、私はあなたが必要なものを知りません。一見すると、Vagrantプロジェクトにグローバルインベントリファイルを使用するのは意味がありませんが、あなた自身の理由があるかもしれません。私は2番目の質問についてもわからない、私は答えの設定の名前を与えている - それを使用するだけで問題は何ですか? – techraf

+0

そして 'group_vars'をそのままコピーしても、Vagrantは' app'とは何の手がかりも持っていません。あなたが 'Vagrantfile'に' app1'を定義し、それが 'app'ではなく自動生成された目録に反映されるので、' host1vars'から 'app1'をソースします。 – techraf

関連する問題