Saya memiliki 4 VM di server aplikasi Vagrantfile - 3 saya dan host kontrol yang memungkinkan.
Saya hanya menggunakan Vagrant untuk membuat VM karena saya menyediakannya secara manual dari host kontrol yang memungkinkan karena saya masih membuat / mengedit skrip yang mungkin.
Saya dapat melakukan vagrant ssh ansible
dan vagrant ssh app1/2/3
lain - lain, tetapi ketika saya mencoba melakukannya ansible-playbook oracle.yml
dari host kontrol Ansible, SSH gagal
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}
Saya berhasil ssh dari Ansible VM ke Oracle VM menggunakan pengguna gelandangan dan gelandangan kata sandi.
Bagian penting dari Vagrantfile saya adalah:
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
Apa yang perlu saya masukkan ke dalam Vagrantfile untuk memungkinkan VM yang memungkinkan untuk terhubung ke VM lain tanpa memerlukan kata sandi atau langkah manual tambahan setelahnya vagrant up
?
Ini hanya untuk pengujian pengembangan pada jaringan pribadi pada pengembang PC sehingga keamanan tidak benar-benar masalah dan yang kedua untuk kemudahan implementasi dan kelancaran pengalaman pengguna.
Jawaban:
Tidak ada metode umum dan itu mungkin tergantung pada bagaimana
boxcutter/ol67
itu dikemas.Metode termudah adalah dengan menentukan kata sandi di file inventaris yang dimungkinkan:
Metode kedua adalah membiarkan kunci privat tidak aman dikonfigurasikan pada
oracle-vm
mesin dan menyuntikkan kunci privat keansible
VM:Buat pasangan kunci sebelumnya di mesin host, masukkan kunci pribadi ke Ansible VM, kunci publik ke Oracle
authorized_keys
.Hasilkan pasangan kunci pada Ansible VM, salin kunci publik ke Oracle VM menggunakan shell provisioner dan masukkan
vagrant
sebagai kata sandi untukssh-copy-id
.Dan daftar tidak berakhir di sini, itu tergantung pada keamanan yang diperlukan.
sumber
Berdasarkan saran ke-3 techraf saya melakukan hal berikut:
vagrant up ansible
ssh-keygen
(tidak ada kata sandi yang ditekan Enter).ssh/id_rsa
dan.ssh/id_rsa.pub
ke direktori proyekvagrant destroy ansible
Vagrantfile
untuk menyalinid_rsa
ke semua hostVagrantfile
untuk menyalinid_rsa.pub
keauthorized_keys
dalam semua hostCuplikan Vagrantfile:
sumber
Jika Anda ingin memiliki blok yang telah diformat dalam daftar, indentasi dengan delapan spasi:
menghasilkan kunci publik / pribadi
sunting Vagrantfile, tambahkan baris ikuti: config.vm.provisi "file", sumber: "id_rsa", tujuan: "/home/vagrant/.ssh/id_rsa"
sumber