Módulo Ansible

Copiar URL

Um módulo Ansible® é um trecho de código de automação que executa ações em uma máquina local, numa interface de programação de aplicações (API) ou em um host remoto. Geralmente, esses módulos são códigos escritos em Python. Eles contêm os metadados que definem quando e onde uma tarefa de automação específica deve ser executada e quais usuários podem executá-la. Existem milhares de módulos do Ansible disponíveis para download em repositórios como o Ansible automation hub e o Ansible Galaxy. Mas você pode criar seus próprios módulos personalizados e compartilha-los com outros usuários do Ansible da sua empresa ou da comunidade open source.

Os módulos podem executar uma ampla variedade de funções de TI em diversos cenários, como provisionamento e gerenciamento de redes, segurança, serviços de nuvem, contas de usuários, configurações de sistemas e comunicações. Para entender como os módulos Ansible podem ajudar você a automatizar esses e outros casos de uso, é importante compreender a relação entre módulos e outros componentes essenciais da automação do Ansible, como tarefas, plays, playbooks e roles.

  • Tarefa: define a ação a ser aplicada a um host gerenciado, mas sem o especificar. Você pode acionar um módulo em uma tarefa para que ele seja executado em um host. No entanto, a especificação desse host é feita fora da tarefa, mais precisamente no nível do play.
  • Play: principal central de execução do Ansible, ele inclui uma lista de tarefas mapeadas para hosts gerenciados específicos. Além disso, ele contém variáveis e, nos casos de uso mais complexos, roles.
  • Ansible Playbook: inclui um ou mais plays. Os playbooks são escritos em YAML, o que os torna legíveis por humanos e fáceis de compartilhar.
  • Ansible Role: função que empacota conteúdos do Ansible, como tarefas, handlers (manipuladores), variáveis, plugins, templates e arquivos, para serem usados em um play. É possível importar Ansible Roles para um play e reutilizá-los em outros plays e playbooks. Você também compartilhá-los com outros usuários de automação.
  • Coleções: pacotes de conteúdo do Ansible projetados para acelerar o trabalho dos desenvolvedores de automação, aumentando a produtividade. As coleções são o método preferencial para empacotar e compartilhar módulos.
  • Plugins: trechos de código que expandem a funcionalidade básica do Ansible e são normalmente executados no nó de controle. Embora os módulos sejam um tipo de plugin, eles geralmente executam tarefas em um destino específico, não no nó de controle. 

Considere da seguinte forma: se as tarefas são trabalhos a serem concluídos, os módulos são as ferramentas necessárias para realizá-los. Uma tarefa define uma ação que precisa ser realizada e o módulo é executado em um host gerenciado para concluir essa ação, coletando valores de retorno em formato JSON ao ser finalizado.

Normalmente, os módulos são armazenados em uma biblioteca de playbooks e acionados quando um playbook executa a tarefa a eles associada. No entanto, é possível incluir módulos em roles ou coleções Quando um Ansible Role é importado para um playbook, os módulos no diretório da role realizam as tarefas definidas, otimizando a clareza e o estilo da automação Um módulo escrito em um play individual será utilizado uma única vez. Já os módulos inseridos em um role são executados sempre que esse role é acionado no playbook.

Os três exemplos de módulos a seguir estão incluídos no Ansible Core e fazem parte de todas as instalações do Ansible:

  • Módulo dnf (ansible.builtin.dnf): instala, atualiza e remove pacotes e grupos via gerenciador de pacotes de software dnf, o qual é o padrão do Fedora.

  • Módulo service (ansible.builtin.service): gerencia serviços em hosts remotos. Alguns exemplos de ações são iniciar, parar e reiniciar um serviço.

  • Módulo command (ansible.builtin.command): executa comandos nos destinos.

Recursos da Red Hat

Você pode criar seu próprio módulo do Ansible para realizar uma tarefa específica quando os módulos que já existem não forem suficientes para seu caso de uso de automação. Embora o processo de criação de módulos varie dependendo da complexidade das tarefas de automação, você pode desenvolver seu próprio módulo seguindo estas etapas:

  1. Crie um diretório de biblioteca no seu repositório.
  2. No diretório da biblioteca, crie um arquivo de módulo em Python ou na linguagem de programação que preferir.
  3. Desenvolva um playbook de teste no diretório da biblioteca.
  4. Execute o playbook para testar o módulo.

Os módulos devem ser curtos e ter como finalidade solucionar um problema muito específico. Isso é que os torna fáceis de testar, usar, reutilizar e compartilhar. Além disso, os módulos devem oferecer uma interface que aceite argumentos e ser idempotentes, ou seja, não devem fazer alterações caso identifiquem que o estado atual do nó é igual ao estado final desejado.

Usuários iniciantes no desenvolvimento de conteúdo do Ansible ou que queiram simplificar o processo de criação dos módulos podem utilizar o Content Builder, uma ferramenta da comunidade que gera módulos e outros plugins do Ansible para diversos casos de uso, como a criação de conteúdos para rede, segurança e nuvem.

Assim como os demais tipos de conteúdo do Ansible, os módulos são compartilháveis. Com uma subscrição do Red Hat® Ansible Automation Platform, você pode empacotar seus módulos em coleções e depois carregá-las no Ansible automation hub ou compartilhá-las com o restante da sua empresa por meio de um automation hub privado. Você também pode distribuir seus módulos no Ansible Galaxy, um repositório gratuito para compartilhamento de conteúdo do Ansible com usuários da comunidade.

Aprenda a criar módulos do Ansible com o Content Builder

Embora os módulos desempenhem um papel essencial na execução dos playbooks, eles também são muito úteis para empresas que desejem adotar uma abordagem mais avançada e proativa no gerenciamento de TI, utilizando a automação orientada por eventos.

Essa abordagem de automação conecta dados de eventos de TI a ações automatizadas. Assim, as equipes realizam menos etapas manuais para responder ou corrigir um problema. Um evento é qualquer ocorrência que prejudique a entrega de um serviço ou o gerenciamento da infraestrutura de TI.

Event-Driven Ansible, uma funcionalidade do Red Hat Ansible Automation Platform, é uma solução abrangente para equipes buscando os benefícios da automação orientada por eventos. Ele utiliza Ansible Rulebooks para responder a eventos com ações definidas pela sua equipe, que podem ser a execução de playbooks, roles, templates ou módulos. Um rulebook utiliza instruções condicionais do tipo "if-this-then-that" (se isso, então aquilo) para ajudar você a automatizar tarefas rotineiras, por exemplo, executar um playbook de correção em caso de uma interrupção do serviço.

Quando os dados do evento de origem atendem às condições especificadas no rulebook, o Ansible Automation Platform ativa as ações definidas por você, por exemplo, executar um playbook inteiro ou apenas um módulo para realizar uma ação específica. A resposta depende totalmente do que você quer que aconteça quando um determinado evento ocorrer e do que você estipulou no rulebook.

O exemplo abaixo demonstra como um módulo de depuração é acionado quando um evento originado em um webhook atende às condições definidas em um rulebook.

rulebook.yml:

---
- name: Listen for events on a webhook
  hosts: all
  ## Define our source for events
  sources:
    - ansible.eda.webhook:
        host: 0.0.0.0
        port: 5000
  ## Define the conditions we are looking for
  rules:
    - name: Say Hello
      condition: event.payload.message == "Ansible is super cool"
  ## Define the action we should take should the condition be met
      action:
        run_playbook:
          name: say-what.yml

O playbook say-what.yml:

- hosts: localhost
  connection: local
  tasks:
    - debug:
        msg: "Thank you, my friend!"

Nesse caso, o rulebook especifica o que o playbook say-what.yml deve executar quando as condições definidas são atendidas. Como o módulo de depuração está incluído no playbook say-what.yml, ele é acionado sempre que o playbook é executado.

Como parte do Ansible Automation Platform, o Event-Driven Ansible tem o que você precisa para resolver eventos e entregar serviços de TI com rapidez e eficiência. Sua equipe pode concluir tarefas sem intervenção manual, liberando tempo para se concentrar em projetos mais estratégicos para a empresa.

A automação baseada em eventos muitas vezes depende de ferramentas de monitoramento externas para detectar ocorrências. Utilizar conteúdos do Ansible compatíveis com as plataformas e ferramentas que sua empresa já utiliza pode simplificar a adoção de fluxos de trabalho automatizados mais eficazes. Com uma subscrição do Red Hat Ansible Automation Platform, você tem acesso ao Ansible Content Collections com milhares de pacotes de módulos, roles, plugins e documentação. Isso inclui conteúdos do Red Hat Ansible Certified Content e conteúdos validados do Ansible desenvolvidos pela Red Hat e parceiros. Para fazer o download, basta acessar o Ansible automation hub,

Acesse os laboratórios interativos do Ansible Automation Platform

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é data center definido por software (SDDC)?

Data center definido por software (SDDC) é uma abordagem de gerenciamento de TI que abstrai componentes de infraestrutura tradicionais, como computação, armazenamento e rede, e os fornece como serviços de software.

Por que escolher o Red Hat Ansible Automation Platform como sua base para IA?

O Red Hat® Ansible® Automation Platform estabelece uma base sólida para implementações de IA, simplificando a implantação, o gerenciamento, a configuração e o ciclo de vida de modelos de IA e componentes da infraestrutura.

Como criar uma estratégia de automação de TI

Isolada, a automação tem alcance limitado. Para ampliar a automação a todas as áreas das suas operações de TI, você precisa de uma estratégia que integre equipes, processos e fluxos de trabalho desconectados.

Automação e gerenciamento: leitura recomendada

Produto em destaque

Artigos relacionados