2017-11-21 23 views
1

나는이 단순화되는 Vagrantfile : 나는 vagrant provision를 실행하는 경우에만 python3하지 파이썬 2.X를 가지고 기본적으로 우분투 16.04 때문에방랑 + Ansible + Python3

Vagrant.configure(2) do |config| 
    config.vm.box = "ubuntu/xenial64" 
    config.vm.boot_timeout = 900 

    config.vm.define 'srv' do |srv| 
    srv.vm.provision 'ansible' do |ansible| 
     ansible.compatibility_mode = '2.0' 
     ansible.playbook = 'playbook.yml' 
    end 
    end 
end 

에서, Gathering Facts 단계에서, 내가 /usr/bin/python: not foundpython이 설치되었습니다.

여기에 대한 몇 가지 이전 게시물이 있습니다. Python 3을 사용하는 Anabilities 지원의 최근 버전 인 것 같습니다. 호스트 파일이나 명령 행에서 ansible_python_interpreter=/usr/bin/python3을 통해 구성해야합니다. 내 Vagrantfile 또는 playbook.yml 파일에이 옵션을 지정하는 방법이 있습니까? 현재 호스트 파일을 사용하고 있지 않으며 명령 줄을 통해 ansible-playbook을 실행하고 있지 않습니다. 저는 Vagrant 통합을 통해 Ansible을 실행하고 있습니다.

참고로 필자는이 글을 쓰는 시점에서 최신 버전 인 Ansible 2.4.1.0 및 Vagrant 2.0.1을 사용하고 있습니다.

답변

3

내가 아는 한, 당신은 Vagrant 파일 extra_vars에서 사용할 수 있습니다. 위의 블록 extra_vars에서

Vagrant.configure(2) do |config| 
    config.vm.box = "ubuntu/xenial64" 
    config.vm.boot_timeout = 900 

    config.vm.define 'srv' do |srv| 
    srv.vm.provision 'ansible' do |ansible| 
     ansible.compatibility_mode = '2.0' 
     ansible.playbook = 'playbook.yml' 
     ansible.extra_vars = { ansible_python_interpreter:"/usr/bin/python2" } 
    end 
    end 
end 

ansible_python_interpreter로 설정되었거나이 같은 host_vars 사용할 수 있습니다

ansible.host_vars = { 
     "default" => { 
      "ansible_python_interpreter" => "/usr/bin/python2.7" 
     } 
    } 
+1

'ansible_python_interpreter : '에서'extra_vars' 섹션은/usr/빈/python3''는 완벽하게 작동 , 감사! – clay