ОК, я решил это сейчас.Теперь Vagrant сгенерирует ваши личные ключи, которые вам понадобятся, чтобы получить этот ключ в вашей основной виртуальной машине с правильными разрешениями.Вам также нужно будет правильно настроить свою сеть.Итак, давайте сначала займемся точкой сети.
Необходимо будет настроить ваш / etc / hosts.В моей настройке это будет выглядеть так
/ etc / hosts
192.168.255.100 master1.me.vg
192.168.255.101 node1.me.vg
192.168.255.102 node2.me.vg
Ваши личные ключи будут храниться в ./.vagrant/machines/nodeX/virtualbox/ private_key.Вам понадобятся все узлы, к которым вы хотите получить доступ от вашего мастера, поэтому у нас останется следующий
Vagrantfile
Vagrant.configure(2) do |config|
config.vm.define "node1" do |conf|
conf.vm.box = "centos/7"
conf.vm.hostname = 'node1.me.vg'
conf.vm.network "private_network", ip: "192.168.255.101"
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc.hosts"
conf.vm.provision "shell", path: "./node/shell.sh"
end
config.vm.define "node2" do |conf|
conf.vm.box = "centos/7"
conf.vm.hostname = 'node2.me.vg'
conf.vm.network "private_network", ip: "192.168.255.102"
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc.hosts"
conf.vm.provision "shell", path: "./node/shell.sh"
end
config.vm.define "master1" do |conf|
conf.vm.box = "centos/7"
conf.vm.hostname = 'master1.me.vg'
conf.vm.network "private_network", ip: "192.168.255.100"
conf.vm.provider "virtualbox" do |v|
v.memory = 6144
v.cpus = 2
end
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc.hosts"
conf.vm.provision "file", source: "./master1/etc.ansible.hosts", destination: "~/etc.ansible.hosts"
conf.vm.provision "file", source: "./.vagrant/machines/node1/virtualbox/private_key", destination: "~/keys/node1"
conf.vm.provision "file", source: "./.vagrant/machines/node2/virtualbox/private_key", destination: "~/keys/node2"
conf.vm.provision "shell", path: "./master1/shell.sh"
end
end
Наконец вам нужно будет установитьразрешения закрытых ключей как слишком открытого набора разрешений будут отклонены по ssh позже.Мои файлы оболочки выглядят так:
. / Master1 / shell.sh
yum
-y update
yum install -y git
yum install -y ansible
cp /home/vagrant/etc.hosts /etc/hosts
cp /home/vagrant/etc.ansible.hosts /etc/ansible/hosts
chmod 600 /home/vagrant/keys/*
. / Node / shell.sh
yum -y update
yum install -y git
cp /home/vagrant/etc.hosts /etc/hosts
После всего, что сделано
vagrant up
должно работать без сбоев, и вы можете перейти к своему главному виртуальному компьютеру с помощью
vagrant ssh master1
в этом мастере теперь вы можете подключиться, например, к машине node2, используя
ssh -i ~ / keys / node2
Поскольку это набор с большим количеством файлов, я также поместил его в репозиторий, который можно найти здесь
https://github.com/relief-melone/vagrant-ansibletestingsetup/tree/working-no-comments