2017-10-21 81 views
0

J'essaie de créer un ubuntu/xenial64 vm avec Vagrant et le provisionner en utilisant Ansible. Les versions installées d'outils sont:Provision Ubuntu/xenial64 en utilisant Vagrant et Ansible

Vagrant: 2.0.0
Ansible: 2.3.2.0
Python: 2.7.10
VirtualBox: 5.1.30

Ce sont le contenu du répertoire dans lequel je cours vagrant up:

├── Vagrantfile 
└── playbooks 
    ├── inventory 
    ├── main.yml 
    └── vars.yml 

Ce sont le contenu de Vagrantfile:

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

Vagrant.configure(2) do |config| 
    config.vm.box = "ubuntu/xenial64" 
    config.ssh.insert_key = true 

    config.vm.provider "virtualbox" do |v| 
    v.name = "ubuntu" 
    v.memory = 1024 
    v.cpus = 2 
    end 

    config.vm.hostname = "ubuntu" 
    config.vm.network :private_network, ip: "192.168.33.7" 

    config.vm.provision "ansible" do |ansible| 
    ansible.playbook = "playbooks/main.yml" 
    ansible.sudo = true 
    ansible.verbose = true 
    ansible.inventory_path = "playbooks/inventory" 
    ansible.compatibility_mode = "2.0" 
    end 

end 

playbooks/main.yml:

--- 
- hosts: ubuntu 
    become: yes 

    vars_files: 
    - vars.yml 

    roles: 
    - geerlingguy.docker 

playbooks/inventory:

[ubuntu] 
192.168.33.7 

[ubuntu:vars] 
ansible_ssh_user=vagrant 
ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key 

Playbooks/vars.yml:

docker_edition: 'ce' 
docker_package: "docker-{{ docker_edition }}" 
docker_package_state: present 

Quand je lance vagrant up la sortie est:

==> default: Checking for guest additions in VM... 
    default: The guest additions on this VM do not match the installed version of 
    default: VirtualBox! In most cases this is fine, but in rare cases it can 
    default: prevent things such as shared folders from working properly. If you see 
    default: shared folder errors, please make sure the guest additions within the 
    default: virtual machine match the version of VirtualBox you have installed on 
    default: your host and reload your VM. 
    default: 
    default: Guest Additions Version: 5.0.40 
    default: VirtualBox Version: 5.1 
==> default: Setting hostname... 
==> default: Configuring and enabling network interfaces... 
==> default: Mounting shared folders... 
    default: /vagrant => /Users/danilo/tutorials/ansible ubuntu 
==> default: Running provisioner: ansible... 
    default: Running ansible-playbook... 
PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o IdentityFile=/Users/danilo/tutorials/ansible ubuntu/.vagrant/machines/default/virtualbox/private_key -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --extra-vars=ansible_user\=\'ubuntu\' --limit="default" --inventory-file=playbooks/inventory --become -v playbooks/main.yml 
No config file found; using defaults 
ERROR! Specified --limit does not match any hosts 
Ansible failed to complete successfully. Any error output should be 
visible above. Please fix these errors and try again. 

Cependant, vagrant ssh fonctionne comme prévu. Des idées de ce que je peux manquer?

Répondre

1

Tout d'abord, si vous utilisez hosts: ubuntu alors vous devez définir machine nommée:

config.vm.define "ubuntu" do |ubuntu| 
    ubuntu.vm.provision "ansible" do |ansible| 
    ansible.playbook = "playbooks/main.yml" 
    ansible.sudo = true 
    ansible.verbose = true 
    ansible.inventory_path = "playbooks/inventory" 
    ansible.compatibility_mode = "2.0" 
    end 
end 

Sinon, passez en hosts: default dans le jeu.

Mais ...

  • Je ne sais pas pourquoi vous essayez de fournir via 192.168.33.7 - il semble tout à fait inutile pour ce cas d'utilisation - vous pouvez supprimer le ansible.inventory_path de Vagrantfile
  • dans le même inventaire le fichier que vous spécifiez l'utilisateur vagrant qui n'est pas configuré sur ubuntu/xenial64 boîte
  • ansible.sudo est pas nécessaire dans le Vagrantfile
  • marche A nsible cette façon sur ubuntu/xenial64 façon probablement échouer le manque de Python 2
+0

Après avoir effectué ces changements et en cours d'exécution à nouveau, je reçois « PLAY [192.168.33.7] ************* ************************************************ sauter: aucun hôte n'a correspondu " –

+0

S'il vous plaît essayer plus difficile. – techraf