Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Vagrant, Ansible e Máquina provisionada em ambientes diferentes.

Bom dia,

fazendo o curso de Vagrant fiz uns testes e pude observar que a configuração do Ansible junto ao Vagrant é possível em dois cenários (Como mostra o curso).

Vagrant e Ansible na mesma máquina Linux, máquina virtual ou não.

Vagrant gerenciando o Hypervisor com uma máquina rodando o Ansible.

Mas não vi nada sobre cada um estar em uma ambiente diferente.

No caso eu uso o Kali Linux no WSL (Windows Server Linux) onde está o Ansible, com sua própria porta no localhost, 3390, fora do VirtualBox

O Vagrant no meu computador Windows 10.

E uma máquina virtual (Criada no VirtualBox) gerada através do VagrantFile que estava sendo provisionada pelo Ansible.

Não encontrei problema em rodar o playbook.yml através desta minha máquina Kali.

O problema é quando tento rodar apenas o provisionamento do Ansible do VagrantFile, sem que a máquina virtual onde está o Ansible esteja no Hypervisor que o Vagrant está gerenciando ou na própria máquina.

É mais pra nível de conhecimento e testes mesmo, não sei se o Vagrant possibilita isso, tentei achar algo que tratasse especificamente disto na internet mas sem sucesso.

Agradeço a atenção de quem ler e me desculpe o textão...

4 respostas

Olá Marlon, tudo bem? Não entendi muito bem sua dúvida!

1 - Você tem uma máquina física com Windows 10 é isso?

2 - E nesse Windows 10 você tem uma máquina Kali Linux no WSL (Windows Server Linux), e essa máquina Kali Linux está com o Ansible instalado correto?

3 - E nesse caso o Vagrant está instalado diretamente no Windows é isso?

4 - Porém acho que não entendi a última parte, você tem uma máquina virtual que foi criada no VirtualBox, porém o VirtualBox está instalado onde Marlon? Você falou que essa máquina foi gerada através do VagrantFile que estava sendo provisionada pelo Ansible? Você está conseguir provisionar nela antes ou não?

5 - E sim, o uma máquina Linux pelo WSL pode executar o Ansible sim, então você deve conseguir mesmo executar o playbook.yml através da máquina Kali.

6 - Também não entendi essa parte: "O problema é quando tento rodar apenas o provisionamento do Ansible do VagrantFile, sem que a máquina virtual onde está o Ansible esteja no Hypervisor que o Vagrant está gerenciando ou na própria máquina." Teria como você esclarecer melhor pra gente entender o problema.

Sim, o começo você entendeu perfeitamente.

Vou tentar explicar melhor a parte do Ansible, lembrando que:

1 - O Ansible está no Kali Linux no Windows WSL (Que é uma máquina virtual fora do VirtualBox).

2 - O Vagrant está na minha máquina "física" Windows 10.

3 - Existe uma terceira máquina, virtual como a do Ansible que estou provisionando, porém, esta foi criada pelo Vagrant através do VirtualBox, ou seja: Ela é gerenciada pelo Vagrant, ela foi criada através do "VagrantFile", "vagrant up" etc, diferente da máquina virtual do Ansible (WSL) que foi criada pelo Windows.

A questão é que, quando criamos a máquina virtual através do Vagrant, pode até ser a que vai rodar o Ansible, ela já tem as configurações de rede ali, no VagrantFile. E quando temos o Vagrant e o Ansible na mesma máquina, basta colocar o que queremos que o Ansible execute.

Quando executo todos os comandos do Ansible na máquina Kali Linux WSL (criada pelo windows) ele enxerga normalmente a máquina virtual criada pelo Vagrant. Mas não consigo, através do VagrantFile chamar os comandos desta máquina Kali Linux WSL para realizar as tasks nesta terceira máquina, na máquina criada pelo Vagrant.

Cenários que testei durante o curso:

Ansible na mesma máquina que o Vagrant provisionando uma máquina virtual: OK, funciona!

Vagrant criando duas máquinas virtuais, uma com Ansible e outra com qualquer coisa para ser provisionada pelo Ansible: OK, funciona!

Vagrant numa máquina, Ansible em outra, tentando provisionar uma terceira máquina: Não funciona!

Através de texto não sei como explicar melhor kkkkkk De qualquer forma, minha dúvida é a nível de testes mesmo, tentando verificar todo tipo de cenário.

Obrigado pela atenção, Jonilson

Abraço...

solução!

Agora entendi Marlon! Bem, acho que o problema está aqui: "Através do VagrantFile chamar os comandos desta máquina Kali Linux WSL para realizar as tasks nesta terceira máquina, na máquina criada pelo Vagrant." Note que você está tentando fazer com que o VagrantFile chame e execute os comandos Ansible que só podem ser executados a partir de uma máquina Kali Linux, porém você deseja fazer isso a partir do Windows, por isso não funciona. O windows não vai conseguir o acesso e também não pode executar o Ansible, por isso, nesse cenário não está funcionando.

Espero ter esclarecido sua dúvida Marlon!

Esclareceu sim, eu queria isso mesmo, ter a certeza que não existe nenhuma configuração de rede no VagrantFile que possibilitasse tal tarefa.

Muito Grato!!

Atenciosamente...