Ansible usa a linguagem declarativa para descrever o estado desejado dos sistemas e lida automaticamente com as tarefas necessárias para atingir esse estado.
Ansible usa SSH como método de conexão padrão para conectar-se a uma máquina de destino. O SSH fornece um canal de comunicação seguro e criptografado entre o nó de controle Ansible e os hosts de destino.
Normalmente, o método mais comum de configuração da autenticação baseada em chave SSH para o host de destino é o comando ssh-copy-id. O comando copia a chave pública do nó de controle para o arquivo “authorized_keys” no host de destino.
No entanto, ao configurar um sistema pela primeira vez, pode ser necessário que o Ansible faça isso em um manual. É aqui que a comunidade Ansible vem em socorro.
Na comunidade Ansible, temos acesso à função ssh_id_copy que nos permite autorizar os sistemas para autenticação SSH sem senha.
Esta função cuida da configuração das chaves SSH na máquina remota, o que nos permite criar um arquivo de inventário Ansible com a máquina remota. Podemos então chamar rapidamente qualquer manual do Ansible na máquina remota.
Função Ansible Ssh_Copy_Id
A função possui variáveis que permitem ao Ansible configurar as chaves SSH no host remoto. Essas variáveis incluem:
nome de anfitrião – Define o sistema remoto ao qual se conectar (FQDN ou IP).
Nome de usuário – Especifica o nome de usuário para conectar-se ao sistema remoto.
Senha – Define a senha do nome de usuário para conexão ao sistema remoto.
ssh_public_key – Define o caminho absoluto para o arquivo de chave pública a ser configurado no host remoto.
Porta – Define a porta SSH.
Instalando a função Ssh_Copy_Id
CUIDADO: Não podemos fornecer a validade e a segurança de funções e módulos orientados pela comunidade. Audite e verifique o funcionamento de uma função/módulo antes de usá-lo na produção e em máquinas reais. Nenhuma segurança é garantida ao trabalhar com as etapas descritas nesta postagem.
Conforme mencionado, ssh_copy_id é uma função fornecida pela comunidade por Ryan. O link para o repositório é fornecido da seguinte forma:
https://github.com/ryankwilliams/ansible-ssh-copy-id
Antes de podermos usá-lo, precisamos garantir que ele esteja instalado executando o seguinte comando:
$ galáxia ansible instalar rywillia.ssh-copy-id
Exemplo de uso
Depois de instalado, podemos usar a função em um manual, conforme demonstrado a seguir:
---- nome : configurar autenticação ssh sem senha em uma máquina remota
anfitriões : host local
tornar-se : sim
papéis :
- papel : ryankwilliams.ssh_copy_id
cujo :
nome de anfitrião : 172.168.112.23
nome de usuário : Ubuntu
senha : senha
ssh_public_key : /home/debian12/.ssh/id_rsa.pub
ssh_port : 22
O manual de exemplo anterior demonstra como usar a função para configurar a autenticação SSH sem senha, um usuário definido na máquina remota.
Conclusão
Neste tutorial introdutório, você aprendeu como aproveitar funções e módulos fornecidos pela comunidade para configurar a autenticação SSH sem senha em hosts remotos usando um manual do Ansible.