Módulo de comando Ansible

Módulo de comando Ansible
Em certos casos, o que é necessário é apenas executar instruções nos hosts remotos de destino imediatamente, semelhante a como você faria em um prompt de comando no Windows. O módulo de comando Ansible é útil neste cenário. Você entenderá o módulo de comando Ansible neste artigo, incluindo como ele funciona e como você pode utilizá -lo para fornecer instruções aos hosts remotos gerenciados.

Em Ansible, se quisermos emitir alguns comandos para fazer alterações ou atualizar qualquer coisa no host remoto de destino, usaremos o módulo de comando. O módulo Ansible ad-hoc é o módulo padrão quando estamos usando o módulo "comando" na ferramenta Ansible. Os únicos executáveis ​​que o módulo de comando pode executar são aqueles que estão no alvo hosts distantes. O principal objetivo do módulo de comando em Ansible é evitar o terminal local.

Existem algumas restrições em Ansible, por exemplo, variáveis ​​como $ hostname ou $ home não são acessíveis e operações como "&" e "<" etc are not functional in the command module. Any other Ansible module can be used if you wish to utilize these parameters. The command module in Ansible is unaffected by the remote host environment, which is why its outcomes are regarded as being more dependable and secure. On the target remote hosts or servers, that are specified as independent servers or hosting groups, the Command module is largely used to carry out standard Ubuntu instructions.

Pré -requisitos para utilizar o módulo de comando em Ansible

Este tutorial inclui demonstrações práticas de Ansible. Para usar o módulo de comando Ansible, presumimos que você tenha os requisitos listados abaixo:

  • Primeiro, precisamos de software relacionado à Ansible em seu sistema para que possamos utilizar a ferramenta Ansible antes de podermos implementar o módulo de comando. Estamos usando Ansible 2.12 ou uma versão posterior para o tutorial.
  • Como resultado, exigimos que um controlador Ansible execute os comandos em hosts remotos e os hosts remotos nos quais queremos focar nas implementações.

Vamos explorar a premissa do módulo de comando em mais detalhes e examinar como o Ansible implementa isso, lançando vários cenários em prática.

Exemplo 01: Verificando o tempo de atividade de um host remoto de destino, utilizando o módulo de comando de Ansible

Todo profissional em potencial ou operador poderoso, como um controlador Ansible, deve possuir um conhecimento firme de alguns comandos encontrados na ferramenta de configuração Ansible. Vamos usar um dos comandos mais importantes do módulo de comando, que é o comando "tempo de atividade" em Ansible. O tempo de atividade do comando exibe o tempo presente, o número de hosts ativos, a carga típica do servidor nos 1, 5 e 15 minutos anteriores, bem como a quantidade de tempo em que seu dispositivo está funcionando. Seguindo as opções que você especificar, também é capaz de restringir o conteúdo relevante ao mesmo tempo.

Vamos começar criando o manual onde escreveremos o comando de tempo de atividade para verificar o tempo de atividade do host remoto. O comando que usaremos para criar o manual na ferramenta Ansible é a seguinte:

[root@master Ansible]# nano command_module.yml

Depois de escrever o comando acima, o comando_module.O Playbook YML será criado e lançado em um novo editor com o nome do Playbook, que é "Command_module". Neste editor, primeiro fornecemos os hosts remotos que queremos atingir. Aqui, temos como alvo "todos" os hosts remotos. Para obter as informações relacionadas aos hosts remotos direcionados, usaremos o Ansible "Catching Facts", módulo. Os dados coletados são normalmente chamados de "fatos" ou "variáveis" na ferramenta Ansible.

Na ferramenta Ansible, podemos reunir os dados de hosts remotos individualmente usando o comando específico que é "configuração". Mas, na realidade, a variável de fatos de coleta é realizada chamando este módulo de configuração por padrão em manuais Ansible. Para reunir os dados, passaremos o valor "verdadeiro" ou "falso". Como mostrado, passamos "falso" porque não queremos obter as informações do host de destino.

Em seguida, listaremos as tarefas que queremos realizar no manual Command_module. Começaremos nomeando a tarefa. Em seguida, usamos o parâmetro "registro" para que possamos rastrear e armazenar a saída neste parâmetro Ansible. Agora, passaremos o comando que queremos realizar, que é "tempo de atividade". Em seguida, usamos o comando "Debug" para imprimir a saída da variável.

- anfitriões:
- todos
Gather_Facts: False
tarefas:
- Nome: Execute o comando de tempo de atividade sobre o módulo de comando
Registro: UptimeOutput
Comando: "Uptime"
- depurar:
VAR: UpTimeOutput.stdout_lines

Atingir Ctrl+X encerrará o editor de playbook. Agora, criaremos o arquivo de inventário, que conterá os detalhes sobre o host remoto de destino. O comando que usaremos para criar o arquivo de inventário em Ansible é mencionado abaixo:

[root@master Ansible]# Nano Host.yml

Um editor diferente chamado "host" será aberto com o arquivo de inventário. Como os anfitriões “todos” foram mencionados no manual, agora examinaremos cada host individualmente. Usamos apenas um host no arquivo de inventário, ao qual nos referiremos como "host1", e incluiremos seus detalhes lá. Começaremos fornecendo o endereço IP e, em seguida, a identidade do host, a credencial da ferramenta Ansible, o nome da conexão que foi formada entre o controlador e o host e, finalmente, o número da porta.

Todos:
anfitriões:
Host1:
Ansible_host: 192.168.3.229
Ansible_user: Ansible
Ansible_password: *******
Ansible_connection: ssh
Ansible_port: 22

Agora lançaremos o manual e o arquivo de inventário que foram criados após serem escritos pelo comando listado abaixo:

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

Aqui está a saída depois de executar com sucesso, onde temos as informações do host1. Temos tempo, dias, total de dados dos usuários e a média de carga do host1.

Exemplo 02: Utilizando o comando uname para obter o nome do host e a versão do host remoto

Aqui está o segundo exemplo de um módulo de comando em Ansible, onde vamos usar o comando "Uname". Estamos usando "Uname" para obter as informações do host remoto do Ansible, como queremos obter o nome do host remoto e qual versão da ferramenta Ansible. Primeiro, entraremos no manual criado recentemente que é command_module.YML e depois modifique as tarefas e comandos. Para abrir o comando_module.Playbook YML, usaremos o comando "nano":

[root@master Ansible]# nano command_module.yml

No manual, alteramos as tarefas que foram mostradas abaixo no trecho de código. Conforme mostrado na variável de comando, passamos o comando "Uname" junto com a opção "-a" para que possamos obter as informações de todos os hosts.

- anfitriões:
- todos
Gather_Facts: False
tarefas:
- Nome: Execução da Instrução Uname
Registro: unameout
Comando: "Uname -a"
- depurar:
VAR: Unameout.stdout_lines

Vamos salvar as modificações e fechar o manual. Agora, vamos executar o manual para obter a saída do comando “Uname” e ver o que conseguimos. Para executar o manual, abaixo está o comando que usaremos:

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

O resultado de executar com sucesso o comando mencionado é mostrado abaixo. O nome do host e a versão são mostrados na fonte verde.

Conclusão

Aprendemos um dos módulos de Ansible, que é o módulo de comando. Discutimos como funciona em Ansible. Além disso, aprendemos os dois cenários básicos do módulo de comando implementando os exemplos.