Ich habe 4 VMs in meinem Vagrantfile - 3 Anwendungsserver und einen Ansible-Steuerungshost.
Ich verwende Vagrant nur zum Erstellen der VMs, da ich sie manuell vom ansible-Steuerungshost aus bereitstelle, da ich die ansible-Skripte noch erstelle / bearbeite.
Ich kann vagrant ssh ansibleund vagrant ssh app1/2/3usw., aber wenn ich versuche, dies ansible-playbook oracle.ymlvom Ansible-Steuerungshost aus zu tun , schlägt SSH mit fehl
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}
Ich kann mit Hilfe von User Vagrant und Password Vagrant erfolgreich von der Ansible VM zur Oracle VM ssh.
Die wichtigsten Teile meiner Vagrant-Datei sind:
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
Was muss ich in die Vagrant-Datei einfügen, damit die Ansible-VM eine Verbindung zu den anderen VMs herstellen kann, ohne dass ein Kennwort oder zusätzliche manuelle Schritte erforderlich sind vagrant up?
Dies ist nur für Entwicklungstests in einem privaten Netzwerk auf Entwickler-PCs gedacht, sodass Sicherheit kein wirkliches Problem darstellt und an zweiter Stelle nach einfacher Implementierung und reibungsloser Benutzererfahrung steht.