Criei um ambiente de vagabundo multi-máquina de três nós e estou tendo problemas de transferir de um vagabundo vm para outro.
Aqui está o arquivo Vagrant:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.define "master" do |master|
master.vm.hostname = "master.local"
master.vm.network "private_network", type: "dhcp"
end
config.vm.define "node1" do |node1|
node1.vm.hostname = "node1.local"
node1.vm.network "private_network", type: "dhcp"
end
config.vm.define "node2" do |node2|
node2.vm.hostname = "node2.local"
node2.vm.network "private_network", type: "dhcp"
end
end
O arquivo hosts (o mesmo em cada nó):
$ cat /etc/hosts
172.28.128.3 master.local master
172.28.128.4 node1.local node1
172.28.128.5 node2.local node2
Posso fazer ping o dia todo de uma máquina para outra, mas não posso ssh de uma vagabunda vm para outra. A mensagem de erro típica é (do nó1 ao mestre):
[vagrant@node1.local] $ ssh vagrant@172.28.128.3
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
O SSH está em execução e a porta está aberta.
O firewall não está em execução.
Estou certo de que isso tem a ver com chaves ssh. Eu admito prontamente que não sou especialista.
O que estou fazendo de errado aqui, pessoal?
ssh vagrant@host
e também usarvagrant
como senha.ip a
todas as caixas à pergunta e verifique se os endereços IP (172.28.128.3-5) estão disponíveis quando as caixas estão inativas.Respostas:
O arquivo Vagrant a seguir soluciona esse problema.
Você pode obter todos os arquivos-chave de suporte junto com este arquivo vagrant em https://github.com/malyabee/IaaC/tree/master/ansible_lab
fonte
De acordo com os documentos, deve-se usar:
Se houver um único nó, use
vagrant ssh
e, no caso de vários nós, defina o nome ou o ID da VM, por exemplo,vagrant ssh box1
Se alguém quiser ssh entre as caixas, poderá criar uma chave ssh e provisionar a chave privada para cada caixa e adicionar a chave pública ao arquivo allowed_keys.
https://www.vagrantup.com/docs/provisioning/file.html
fonte
vagrant ssh name
dentro de uma caixa? A questão é sobre a conexão do ssh do node1.local ao master.local, que são as duas máquinas ativadas pelo vagrant.Experimente este link . Você precisa executar um dos seguintes procedimentos:
ssh -i <pathto/private_key> <vagrant>@<ip>
ssh -o PreferredAuthentications=password user@server-ip
(se você não desativou a autenticação baseada em senha)fonte