J'ai 4 machines virtuelles dans mon Vagrantfile - 3 serveurs d'applications et un hôte de contrôle Ansible.
J'utilise uniquement Vagrant pour créer les machines virtuelles car je les provisionne manuellement à partir de l'hôte de contrôle ansible car je suis toujours en train de créer / éditer les scripts ansible.
Je peux le faire vagrant ssh ansible
, vagrant ssh app1/2/3
etc., mais lorsque j'essaie de le faire à ansible-playbook oracle.yml
partir de l'hôte de contrôle Ansible, SSH échoue avec
fatal: [192.168.60.10]: UNREACHABLE! => {"changed": false, "msg": "SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue", "unreachable": true}
Je peux réussir ssh de la machine virtuelle Ansible à la machine virtuelle Oracle en utilisant vagrant utilisateur et mot de passe vagabond.
Les éléments clés de mon Vagrantfile sont:
config.ssh.insert_key = false
config.vm.define "db" do |db|
db.vm.box = "boxcutter/ol67"
db.vm.hostname = "oracle-vm"
db.vm.network "forwarded_port", guest: 22, host: 2201, id: "ssh", auto_correct: false
db.vm.network "forwarded_port", guest: 1521, host: 1521
db.vm.network "private_network", ip: "192.168.60.10"
db.vm.provider "virtualbox" do |v|
v.name = "oracle-vm"
v.linked_clone = true
v.memory = 2048
v.cpus = 2
end
end
#Optional ansible control machine for Windows users
config.vm.define "ansible", autostart: false do |ansible|
ansible.vm.box = "williamyeh/ansible"
ansible.vm.hostname = "ansible-vm"
ansible.vm.network "forwarded_port", guest: 22, host: 2204, id: "ssh", auto_correct: false
ansible.vm.network "private_network", ip: "192.168.60.50"
ansible.vm.provider "virtualbox" do |v|
v.linked_clone = true
end
#Mount the project directory on the guest so we can run the playbooks from there
ansible.vm.synced_folder ".", "/data/ansible", create: true
end
Que dois-je mettre dans le Vagrantfile pour permettre à la machine virtuelle Ansible de se connecter aux autres machines virtuelles sans nécessiter de mot de passe ou des étapes manuelles supplémentaires par la suite vagrant up
?
C'est juste pour les tests de développement sur un réseau privé sur les PC des développeurs, donc la sécurité n'est pas vraiment un problème et vient en second lieu pour la facilité de mise en œuvre et l'expérience utilisateur fluide.