Wpis z mikrobloga

Mam problem Ansible testowanym z Vagrant. Potrzebuję dwie maszyny, niestety uruchamia się tylko jedna, następnie Ansible konfiguruje tą maszynę i wywala się na braku połączenia do drugiej maszyny.

Fragment Vagrantfile:

config.vm.define "vagrant1" do |vagrant1|
vagrant1.vm.box = "bento/ubuntu-18.04"
vagrant1.vm.hostname = "vagrant1"
vagrant1.vm.network "forwarded_port", guest: 3306, host: 3336
vagrant1.vm.network "private_network", ip: "192.168.33.20"
end

config.vm.define "vagrant2" do |vagrant2|
vagrant2.vm.box = "bento/ubuntu-18.04"
vagrant2.vm.hostname = "vagrant2"
vagrant2.vm.network "forwarded_port", guest: 3306, host: 3337
vagrant2.vm.network "private_network", ip: "192.168.33.21"
end

config.vm.provision :ansible do |ansible|
ansible.playbook = "./provisioning/playbook.yml"
ansible.limit = "local"
ansible.inventory_path = "./provisioning/invertory"
end

Gdy testowałem proste tworzenie maszyn to wszystko było ok, startowały obie maszyny.

config.vm.box = "bento/ubuntu-18.04"
config.vm.define "vagrant1"
config.vm.define "vagrant2"

# i następnie config.vm.provision...(j.w.)

Niestety potrzebuję zdefiniowanych adresów IP a nie losowych dlatego też preferuję ten pierwszy sposób wywołania.
Nie wiem czy to ma jakieś znaczenie, playbook jest bardzo rozbudowany.
Szukałem w necie i nie znalazłem rozwiązania problemu, zazwyczaj maszyny tworzone są w pętli i dalej jest blok provision, czasami nawet występuje przed. Pewnie dlatego, że Vagrant czyta plik cały i sobie układa cały proces w odpowiedniej kolejności, tylko dlaczego w moim przypadku nie odpala tej drugiej maszyny?

#ansible #devops
  • 4
@devopsiarz: Dzięki przeszło, teraz mam problem z połączeniem:

"Failed to connect to the host via ssh: Warning: Permanently added '192.168.33.20' (ECDSA) to the list of known hosts.\r\nvagrant@192.168.33.20: Permission denied (publickey,password)


ale gdzieś widziałem podobne, chodzi na pewno o klucze SSH.
Robiłem na podstawie https://www.vagrantup.com/docs/provisioning/ansible.html#ansible-parallel-execution
Przy okazji, fajne masz rozwiązanie dumpowania zmiennych w materiale o Cassandra, Docker i Ansible.