Pular para o conteúdo principal

Ambiente

Existem empresas que possuem um ambiente (torre de comando) específica com toda a configuração do ansible instalado para que somente dela sejam provisionado automações. Essa política só faz sentindo caso as máquinas não estejam de frente para a Internet.

Pre requisitos

Por esse motivo, vamos criar 2 máquinas que já serão o nosso ambiente de playground e todos os comandos que irão para elas serão feitos de localmente. Poderiamos criar 3 e uma ser a nossa central, mas baseado no que eu falei acima, não faz muito sentido, seria tapar o sol com a peneira.

Vamos para o nosso amigo ubuntu mesmo. E não esquecer de garantir que elas possam se comunicar na rede e liberando o acesso para o ip da maquina local para poder fazer um ping nelas de teste.

Essas máquinas poderiam ser vms locais na mesma rede, mas acabei fazendo isso direto na cloud da aws mesmo.

maquinas

Garantindo ssh e a comunicação entre ela.

comunicação entre as mesmas

Conferindo o security group para permitir o ping remoto.

security group config

Testando o ping remoto.

ping remoto

Vamos aproveitar e colocar os nomes no /etc/hosts para facilitar a vida na hora de referenciar a máquina.

~/projects/ansible/study-ansible main !1 ?2                                                                                                                         1.1.7 01:45:21
cat /etc/hosts
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 david-bon.localdomain david-bon
13.59.1.4 robot-1
3.145.169.96 robot-2

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

~/projects/ansible/study-ansible main !1 ?2  1.1.7 01:45:27
ping robot-1
PING robot-1 (13.59.1.4) 56(84) bytes of data.
64 bytes from robot-1 (13.59.1.4): icmp_seq=1 ttl=35 time=246 ms
^C
--- robot-1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 246.422/246.422/246.422/0.000 ms

~/projects/ansible/study-ansible main !1 ?2  1.1.7 01:45:33
ping robot-2
PING robot-2 (3.145.169.96) 56(84) bytes of data.
64 bytes from robot-2 (3.145.169.96): icmp_seq=1 ttl=35 time=226 ms
64 bytes from robot-2 (3.145.169.96): icmp_seq=2 ttl=35 time=253 ms
^C
--- robot-2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 225.880/239.436/252.992/13.556 ms

~/projects/ansible/study-ansible main !1 ?2

Estamos prontos pro playground.

Extras

Se você gerar uma chave com o comando ssh-keygen você deve passar a chave pública gerada para as maquinas de destino.

Para isso você deve colocar essa chave no .ssh do usuário da máquina destino.

##ssh-copy-id id_rsa ubuntu@robot-1
ssh-copy-id nomedachave usuário@ip**

Com esses comandos vai passar a chave pública para o usuário de destino.

Se você quiser inclusive usar o ssh sem o -i para identificar a chave você pode fazer.

##ssh-agent bash que será o bash o shell de destino
ssh-add caminhodachave\
ssh user@ip**