Autorizado_key em Ansible

Autorizado_key em Ansible

Neste tutorial, vamos aprender sobre um dos módulos importantes de Ansible que está autorizado_key. Aprenderemos como transferimos a chave de descriptografia SSH armazenada no arquivo de inventário para os hosts remotos em Ansible.

Para realizar as tarefas no manual Ansible em dispositivos host remotos distantes, devemos remover as credenciais da conexão SSH com o host remoto ou podemos fornecer as credenciais e chaves para autenticar à medida que o manual está sendo executado. Em Ansible, temos duas chaves diferentes que são a chave pública e a chave privada conhecida como par de chaves ssh. Para estabelecer uma conexão com os hosts remotos de destino, devemos trocar nossa chave SSH pública com eles, mantendo a chave SSH privada em máquinas locais. O OpenSSH é o mecanismo de conectividade padrão na ferramenta Ansible. Ansible pressupõe que estamos nos conectando aos hosts remotos de destino usando as teclas SSH.

Diferentes etapas da conexão SSH usando as chaves em Ansible

A seguir, são apresentadas as etapas que vamos usar para construir a conexão SSH entre o controlador Ansible e os hosts remotos, utilizando a chave pública e a chave privada:

Passo 1: Faça um par de teclas gerando as chaves privadas e públicas com os respectivos nomes, ID, RSA e pub.

Passo 2: Se não especificarmos nada, Ansible é produzido automaticamente sob o /.pasta ssh.

Etapa 3: Colocando o pub da chave pública no final do documento /.chaves ssh/autorizadas, você pode transmiti -las para hosts remotos distantes.

Passo 4: Conecte -se via ssh ao host remoto de destino. Em seguida, confirme a solicitação para adicionar as impressões digitais dos hosts de destino ao /.documento de hosts SSH/conhecido. Se você não cumprir isso, o software solicitará que você especifique uma senha sempre que a conexão SSH for iniciada.

Pré -requisitos de Ansible Authorization_key

Assumimos que você tem um servidor de controle Ansible com um Ansible instalado, bem como os hosts remotos de destino para construir a conexão SSH entre todos os módulos Ansible.

Vamos entrar para esclarecer mais aspectos implementando o exemplo simples de uma chave de autorização em Ansible, estabelecendo uma conexão SSH usando chaves públicas e privadas.

Exemplo:

Aqui está o primeiro exemplo que vamos implementar em Ansible usando o módulo Authorization_Key. Para construir a conexão, precisamos de um manual em que escrevemos os hosts e tarefas para estabelecer a conexão entre o servidor de controle Ansible e os hosts remotos de destino. O comando a seguir é usado para criar o manual na ferramenta Ansible:

[root@master Ansible]# nano autorização_key_1.yml

Depois de escrever o comando fornecido, o manual é criado e aberto. Agora, primeiro fornecemos os hosts remotos com os quais queremos construir a conexão SSH, que é o "All" Target Remote Hosts. Em seguida, usamos o parâmetro "Gather_facts" da ferramenta Ansible. O argumento de Gather_fact é usado para chamar o módulo de configuração de Ansible. Nesta situação, não queremos reunir os fatos, por isso fornecemos o valor "falso" para o argumento "colar_facts" porque os fatos são coletados por padrão em Ansible.

Em seguida, listamos as tarefas no manual que queremos fazer. Escrevemos o "nome" da tarefa que é "reunir fatos". Em seguida, escrevemos o módulo de configuração e o "coletor_subset" porque queremos coletar algumas das informações relacionadas ao gerenciamento dos hosts remotos, em vez de obter todas as informações de todos os hosts remotos. Usamos outra variável de Ansible, que é a variável "registro" que preserva os resultados das tarefas do manual e as utiliza para tarefas subsequentes.

Agora, queremos imprimir o nome dos dispositivos host remotos, por isso usamos uma variável "nome" novamente. Então, depuramos as tarefas. Se a tarefa for concluída, exibirá a saída com a mensagem relacionada. A seguir, são apresentadas as tarefas completas do autorization_key_1.Playbook YML:

- anfitriões:
- todos
Gather_Facts: False
tarefas:
- Nome: reunir fatos
configurar:
Gather_subset:
- 'todos'
Registro: Gather_Fact_Data
- Nome: Nome do host da Machine de Targets de Impressão
depurar:
msg: "gather_fact_data.Ansible_facts.Ansible_hostname "

Depois disso, usamos os botões Ctrl+X para encerrar o manual. As informações sobre o host remoto direcionado1 são então gravadas no arquivo de inventário, criando o arquivo. Digitamos o seguinte comando para gerar o inventário:

[root@master Ansible]# Nano Host.yml

No host.Arquivo de inventário YML, fornecemos as informações do host, fornecendo as informações básicas como o endereço IP da Ansible, nome de usuário, nome da conexão, o número da porta do host Ansible, etc.

Todos:
anfitriões:
Host1:
Ansible_host: 192.168.7.10
Ansible_user: Iris
Ansible_connection: ssh
Ansible_port: 22

Feche o host.Arquivo de inventário YML. Agora que o anfitrião.O arquivo YML é atualizado, executamos o manual Ansible para verificar se a conexão foi feita ou não. Escrevemos o seguinte comando:

[root@master Ansible]# Ansible-playbook Autorizado_key_1.yml -i host.yml

Depois de executar o comando anterior, obtemos o seguinte resultado. Como você vê, recebemos o erro que diz que ele não conseguiu conectar -se ao host através de uma conexão SSH e é inacessível. Isso ocorre porque não fornecemos o par de chaves ssh para o controlador Ansible.

Executamos o comando que se segue para dar ao controlador o par de chaves ssh:

[root@master Ansible]# ssh -keygen -q -t rsa

Aqui está a saída de inserir o comando anterior:

Nós simplesmente atingimos Enter. Depois disso, mostra os dois arquivos raiz com as teclas SSH na saída:

Agora, criamos outro manual para o Ansible Control Server e definimos a conexão SSH do servidor controlador. Para criar outro manual, escrevemos o seguinte comando "nano":

[root@master Ansible]# nano autorizado_key_2.yml

Depois de gerar outro manual, agora listamos os hosts e depois usamos o módulo Ansible autorizado. Neste módulo, primeiro escrevemos o nome do host e o estado do usuário. Em seguida, passamos pelo arquivo de chave pública produzida pelo dispositivo controlador que geramos recentemente para o host remoto de destino.

- anfitriões:
- todos
Gather_Facts: False
tarefas:
- Nome: Adicione a chave pública para Authorized_Keys usando o módulo Ansible
Autorizado_key:
Usuário: Iris
Estado: presente
chave: 'item'
with_file:
- ~/.ssh/id_rsa.bar

Use o seguinte comando para executar o Autorizado_key_2.Playbook YML junto com o anfitrião.Arquivo de inventário YML e o arquivo de chave privado:

[root@master Ansible]# Ansible-playbook Autorizado_key_2.yml -i host.yml --private-key /tmp /host.PEM

A saída a seguir é o resultado de executar o manual acima mencionado com o arquivo de inventário:

Como você pode ver no exemplo fornecido, implementamos com sucesso o segundo manual que é o Autorizado_key_2. Agora que temos uma conexão estabelecida entre o controlador e o host remoto, vamos verificar executando o manual que é o manual Autorizado_key_1 e ver se está executando ou não:

[root@master Ansible]# Ansible-playbook Autorizado_key_1.yml -i host.yml

Aqui está a saída do comando anterior que é executado com sucesso:

Conclusão

Aprendemos como conectar o controlador aos hosts remotos usando o módulo de chave de autorização da Ansible. Desenvolvemos o exemplo com uma descrição completa para que a abordagem básica do módulo de autorização seja simples de compreender.