Pesquisa de site

Como criar e baixar funções no Ansible Galaxy e usá-las - Parte 9


Na Parte 9 da série Ansible, você aprenderá como criar e baixar funções no Ansible Galaxy e como usá-las. Ansible é uma ferramenta simples, mas eficaz de gerenciamento de configuração e implantação automática que automatiza tarefas complexas de maneira eficiente. Você pode gerenciar centenas ou até milhares de servidores a partir de um único nó de controle usando um único arquivo de playbook.

No entanto, escrever manuais para gerenciar o mesmo serviço em ambientes diferentes pode ser bastante complicado e geralmente leva à redundância de código. Além disso, mais complexidade pode aumentar a dificuldade de gerenciamento de todos os dispositivos.

Entra em cena os papéis. No Ansible, as funções são usadas para dividir playbooks em arquivos reutilizáveis que podem ser usados em várias outras instâncias onde surge a necessidade de executar uma tarefa semelhante. Isso eliminou a necessidade de reescrever manuais repetidamente e economizou muito tempo e energia.

As funções são simplesmente funcionalidades dos manuais. Uma função vem praticamente com o que constituiria um manual: tarefas, arquivos, módulos, variáveis e modelos. Além disso, observe que cada função é limitada a uma tarefa específica ou ao resultado desejado.

Criando uma função Ansible

Para criar uma função no Ansible, basta usar a sintaxe.

ansible-galaxy init role_name 

Vários diretórios e arquivos serão criados em seu diretório de trabalho atual. Neste caso, decidi criar uma função no diretório /etc/ansible/roles.

Vamos criar uma função chamada apache.

ansible-galaxy init apache

Use o comando tree para dar uma olhada na estrutura de diretórios da função.

tree apache

Como você pode ver, vários diretórios foram criados, porém nem todos serão utilizados no playbook.

Agora, para usar sua função recém-criada em um playbook, defina uma tarefa no arquivo main.yml contido no diretório de tarefas de sua nova função.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Depois, crie um arquivo de playbook e chame a função conforme mostrado.

--- 
- hosts: webservers
  roles:
   - apache

Instalando uma função do Ansible Galaxy

As funções desempenham um papel crucial no compartilhamento de código com outros usuários na comunidade Ansible usando a plataforma Ansible Galaxy. No Ansible Galaxy, você obtém milhares de funções executando diferentes tarefas, como instalação de servidores web e bancos de dados, ferramentas de monitoramento, etc.

Ansible Galaxy é um banco de dados ou repositório de funções do Ansible que você pode aproveitar em seus playbooks e ajudar a agilizar suas tarefas.

Para pesquisar uma função no Ansible Galaxy, basta executar o comando.

ansible-galaxy search <role>

Por exemplo, para procurar uma função chamada mysql run.

ansible-galaxy search mysql

Como você pode ver, existem centenas de funções que correspondem à palavra-chave de pesquisa mysql. No entanto, nem todas as funções desempenharão o que você pretende, por isso é recomendável que você leia as instruções com atenção.

Para obter mais informações sobre uma função, basta executar o comando Ansible:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Em nosso exemplo, vamos instalar a função 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

A função é baixada e extraída para o diretório de funções padrão localizado em /etc/ansible/roles.

A função pode então ser chamada em um manual, por exemplo:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Agora você pode executar com segurança o manual do Ansible conforme mostrado.

ansible-playbook install_mysql.yml

Além disso, você pode visitar o Ansible Galaxy por meio de seu navegador da web e pesquisar manualmente funções para executar várias tarefas conforme descrito no painel.

Por exemplo, para pesquisar uma função de monitoramento como elasticsearch, clique na opção ‘Monitoramento’ e pesquise a função conforme mostrado.

O Ansible Galaxy facilita aos usuários a instalação das melhores funções, listando as funções mais populares e mais baixadas. Para obter mais informações sobre uma função específica, basta clicar nela.

Em um playbook, você também pode especificar mais de uma função, por exemplo.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Para listar as funções instaladas, basta executar.

ansible-galaxy list

Conclusão

As funções facilitam bastante a reutilização e o compartilhamento de playbooks do Ansible. Dessa forma, eles economizam muito tempo do usuário tentando escrever muitos códigos redundantes e gastam muito tempo que teria sido usado em outras tarefas de administração do sistema. E é isso neste guia.