2017-04-01 6 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 (또는 Anios가 기본값으로 사용하는 디렉토리 (예 : macOS에서는 /usr/local/etc/ansible/roles)에서로드됩니다.

+0

그래서'host_vars'와'group_vars'를 playbook.yml 폴더에 복사해야합니까? 그리고 내가 어떻게/etc/anants/hosts'를 가리켜 줘야합니까? –

+0

내가 원하는 것을 모르기 때문에 나는 필요한 것을 모른다. 첫눈에, Vagrant 프로젝트를 위해 글로벌 인벤토리 파일을 사용하는 것은 이치에 맞지 않지만, 아마도 당신 자신의 이유가있을 것입니다. 나는 두 번째 질문에 대해서도 확신하지 못한다. 나는 답안에서 그 설정의 이름을 주었다. 단지 그것을 사용하는 것의 문제점은 무엇인가? – techraf

+0

그리고'group_vars'를 그대로 복사하더라도, Vagrant는'app'가 무엇인지 전혀 모른다. 'Vagrantfile'에'app1'을 정의했기 때문에'app1'을'host_vars'에서 가져옵니다. 자동 생성 된 인벤토리에는 반영되지만'app'에는 반영되지 않습니다. – techraf