Execução de código remoto usando o módulo de comando Ansible

Execução de código remoto usando o módulo de comando Ansible
Para aqueles que trabalham no campo e na rede, o trabalho em servidores deve fazer parte de sua rotina diária.

Configurar diferentes servidores e aplicativos manualmente pode ser um aborrecimento se houver muitos sistemas. Felizmente, o software e as estruturas de automação fazem o trabalho com muito mais facilidade.

Ao usar esses aplicativos, você pode automatizar completamente o processo de gerenciamento e configuração usando apenas algumas linhas de código. Quando se trata de automação de qualquer tipo, Ansible faz o truque!

Ansible é uma ferramenta com uma infinidade de recursos. Falar sobre todos eles em um único guia seria injusto, pois cada um desses recursos merece um guia.

Este guia é um tutorial detalhado sobre o módulo de comando Ansible. Examinaremos o básico do módulo, juntamente com a sintaxe e os recursos, com a ajuda de alguns exemplos.

Qual é o módulo de comando Ansible?

Como o nome sugere, o módulo de comando permite que um servidor/host remoto seja capaz de executar comandos diferentes. Esses usuários remotos são chamados de nós em uma rede.

O módulo de comando Ansible permite que você execute vários comandos nesses nós. Esses nós podem existir como servidores independentes ou partes de um grupo. Dito isto, existem algumas limitações que você deve conhecer.

Limitações do módulo de comando

O módulo de comando pode ser usado para executar comandos simples de linha de base para o shell. A única limitação é que ele não pode ser usado para executar comandos mais complexos.

O módulo de comando Ansible não pode executar vários comandos em uma única instrução. Comandos usando os símbolos, |, etc., não são compatíveis com o módulo de comando. Nesses casos, o módulo Shell é definitivamente uma escolha melhor.

O módulo de comando Ansible tem alguns requisitos que precisam ser atendidos antes que você possa usá -lo. Esses requisitos são abordados na próxima seção deste guia.

Pré -requisitos do módulo de comando Ansible

Para usar o módulo de comando Ansible, você precisa do seguinte:

  • Um sistema que tem Ansible instalado.
  • Alguns anfitriões. Caso você esteja testando seus servidores, recomendamos usar máquinas virtuais. Software como as estações de trabalho Oracle VirtualBox, Vagrant e VMware são perfeitas para o trabalho.

Também recomendamos que você tenha algum conhecimento básico de como executar comandos no terminal para garantir que você saiba o que está fazendo.

Depois que os pré -requisitos forem atendidos, podemos continuar a aprender a usar o módulo de comando Ansible.

Usando o módulo de comando Ansible

Se você tiver alguma experiência anterior trabalhando com scripts de shell, o uso do módulo de comando Ansible deve ser uma caminhada no parque. Caso você não tenha feito isso, não se preocupe, pois o guiaremos sobre como usar o módulo de comando com a ajuda de diferentes exemplos.

A primeira coisa que você deve fazer é criar um arquivo "Ansible_hosts". Este arquivo permitirá que você agrupe seus hosts, o que será útil para executar comandos.

Para criar um grupo de hosts, digite o seguinte no arquivo “Ansible_hosts”

$ ANSIBLE TestServers -List -i Ansible_hosts
Hosts (2):

No nosso caso,

$ ANSIBLE TestServers -List -i Ansible_hosts
Hosts (2):
VM1
VM2

Esses anfitriões agora devem ser agrupados sob o pseudônimo “TestServers.”Vamos usar este arquivo como alguns exemplos.

Usando o módulo de comando para encontrar o tempo de execução do host

Neste exemplo, usaremos o módulo de comando Ansible para descobrir quanto tempo nossos hosts estão sendo executados.

Isso pode ser feito de duas maneiras. O primeiro está usando ad-hoc, uma maneira rápida de executar funções por meio de um único comando. O segundo é escrevendo um script no manual.

Para encontrar o tempo de execução usando ad-hoc, use o seguinte comando:

$ ANSIBLE TestServers -M Command -a Uptime -i Ansible_hosts

Isso deve fornecer a saída na sintaxe a seguir:

| Alterado | rc = 0 >>

Para executar o comando como um manual, digite o seguinte:

Para executar o comando como um manual, digite o seguinte:
- nome:
anfitriões:
tarefas:
- nome:
Registro: UptimeOutput
Comando: "Uptime"
- depurar:
VAR: UpTimeOutput.stdout_lines

No nosso caso, o script deve parecer o seguinte:

- Nome: Encontre há quanto tempo os anfitriões estão sendo executados.
Hosts: TestServers
tarefas:
- Nome: Comando para encontrar o tempo de atividade usando o módulo de comando
Registro: UptimeOutput
Comando: "Uptime"
- depurar:
VAR: UpTimeOutput.stdout_lines

Com isso, você pode executar esse manual executando o seguinte comando no terminal Linux:

Livro de teste Ansible-PlayBook.yml

A saída deve ser semelhante à do comando ad-hoc.

Usando o módulo de comando para encontrar o uso do disco

O comando $ df -h é usado para descobrir o uso do disco em um sistema. O mesmo comando pode ser integrado ao módulo de comando Ansible para encontrar o uso de disco de seus hosts.

Para encontrar o uso do disco usando ad-hoc, use este comando:

$ Ansible testsservers -m comando -a "df -h" -i Ansible_hosts

Para encontrar o uso do disco usando o Playbook, execute o seguinte script:

Nome: Uso do disco de servidores
Hosts: TestServers
tarefas:
- Nome: execute o comando $ df -h.
Registro: DFOUT
comando: "df -h"
- depurar:
var: dfout.stdout_lines

Usando o módulo de comando para reiniciar o servidor

O módulo de comando Ansible pode ser usado para reiniciar um único servidor. O parâmetro -limit é usado para limitar esta execução.

Para executar o comando usando ad-hoc, digite o seguinte,

$ ANSIBLE TestServers -M Command -a "httpd -k reiniciar" -i Ansible_hosts -B -Limit VM1

Para executar o comando usando o manual, execute o seguinte script:

---
- Nome: reinicie o servidor da web
Hosts: TestServers
tarefas:
- Nome: reinicievewebserver
Registro: httpdresout
Torne -se: sim
comando: "httpd -k reiniciar"
Quando: Ansible_hostname == "VM1"
- depurar:
var: httpdresout.stdout_lines

Isso deve reiniciar seu servidor. Deve -se evidente que o VM2 foi ignorado.

Além dos exemplos, como mencionado acima, existem muitos comandos que podem ser executados usando o módulo de comando Ansible. A documentação desses comandos e opções pode ser encontrada na documentação oficial da Ansible online.

Conclusão

Esperamos que este guia tenha ajudado você a aprender sobre o módulo de comando Ansible. Cobrimos o básico do módulo, seus pré -requisitos e alguns exemplos de como usá -lo. Com isso, esperamos que você tenha uma experiência agradável trabalhando no Ansible.