Ansible Galaxy: tudo o que você precisa saber

Publicados: 2022-09-29

Ansible é uma ferramenta popular de gerenciamento de configuração de código aberto. Por outro lado, o Ansible Galaxy é um repositório de funções do Ansible.

Você pode ter apenas um punhado de playbooks como administrador de sistema iniciante. À medida que suas habilidades de automação melhoram e você se familiariza com o Ansible, você aprenderá todas as práticas recomendadas. À medida que você aumenta seus playbooks, você também perceberá o quão importante é o Ansible Galaxy.

O que é Ansible Galaxy?

O Ansible Galaxy é um repositório online de código aberto baseado na Web para conteúdo do Ansible (principalmente funções e coleções). É quase como se você tivesse criado algo novo e quisesse compartilhá-lo com os outros.

Se você tiver algum problema com a automação do Ansible ou precisar de uma solução pré-empacotada de outras pessoas para impulsionar seus projetos de automação, o Ansible Galaxy pode ajudar. Por exemplo, você pode ter funções, coleções, módulos ou plugins. Muitos membros da comunidade já fizeram upload de suas coleções e funções do Ansible.

Ansible-Galaxy-2

Para realizar tarefas como instalar funções do Galaxy ou qualquer git SCM, criar ou remover funções ou executar algumas tarefas no site do Galaxy, podemos usar o comando 'ansible-galaxy'. Esse comando vem pré-instalado com o Ansible, para que você possa usá-lo imediatamente após instalar o Ansible.

O projeto Galaxy é um projeto de código aberto que nos permite hospedar nossos servidores Galaxy internos. Para usar o servidor interno do Galaxy, você terá que editar a configuração padrão no arquivo Ansible.cfg com o endereço do servidor interno do Galaxy porque, por padrão, ele usa o endereço do servidor galaxy.ansible.com.

Visão geral do Ansible

O Ansible pode ser descrito como um multiplicador que automatiza e dimensiona infraestruturas de todos os tamanhos. Ele pode ser usado para gerenciar configurações, orquestrar implantações e outras funções. Ansible é muito fácil de configurar. O Ansible pode ser usado até mesmo por um administrador de sistema iniciante para automatizar a infraestrutura em apenas algumas horas.

O Ansible automatiza usando o protocolo SSH. O mecanismo de controle usa uma conexão SSH para se comunicar com seus hosts de destino (geralmente hosts Linux). Os administradores de sistema do Windows ainda podem usar o Ansible para automatizar seus ambientes Windows com WinRM em vez de SSH. A máquina de controle ainda deve executar o Linux.

O Ansible pode executar tarefas comuns do sysadmin, como aplicação de patches, atualização, gerenciamento de grupos e usuários, provisionamento e outras tarefas administrativas.

O Ansible é a ferramenta de gerenciamento, orquestração e implantação de configuração mais usada e popular atualmente. Sua simplicidade é um de seus principais pontos fortes. É simples, poderoso, mas sem agente. Isso significa que um administrador de sistema novo ou de nível básico pode automatizar a infraestrutura em apenas algumas horas. O Ansible permite dimensionamento rápido, eficiência e funcionalidade cruzada.

Trabalhando no Ansible Galaxy

Em seguida, vamos abrir o terminal e executar alguns comandos usando o Ansible Galaxy. Mas antes disso, você deve ter o Ansible mais recente instalado em seu sistema.

Quando você tiver o Ansible mais recente instalado em seu sistema, basta digitar ansible-galaxy no terminal e você terá todas as opções disponíveis com o Galaxy.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy 
Galaxy-ansible

Em primeiro lugar, você pode começar com o comando init e criar uma função. Aqui estou criando um papel 'testing'. Use o comando ls para verificar se a função foi criada com sucesso. O comando init também cria os arquivos necessários dentro do diretório da função de teste.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing
ansible-galaxy-init

Ansible Galaxy é uma comunidade grande e ativa onde muitas funções já foram criadas e você pode usar diretamente.

Abaixo está a página que será aberta quando você navegar em 'galaxy.ansible.com', ou podemos dizer que é a página inicial do site 'Ansible Galaxy'. Podemos clicar em qualquer categoria popular na página inicial ou clicar no botão 'Pesquisar' para obter mais filtros para aplicar uma pesquisa granular.

ansible-galáxia

Por exemplo, se você estiver procurando por uma função de servidor MySQL, basta procurá-la e clicar no botão de filtro. Você pode ver que geerlingguy tem o máximo de downloads; podemos tentar instalar esta função. Clique em geerlingguy MySQL.

ansible-galaxy-mysql

Você receberá o comando de instalação para instalar essa função usando ansible-galaxy .

ansible-galaxy-install-mysql

Execute o comando mencionado no instantâneo acima para baixar e instalar a função de servidor MySQL em sua máquina.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy instalar geerlingguy.mysql 
ansible-galaxy-install

Se você já sabe qual função pesquisar por um determinado autor, pode usar o comando de pesquisa conforme mostrado abaixo.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch --author geerlingguy 
ansible-galaxy-search

Comandos comuns do Ansible Galaxy

O comando ansible-galaxy gerencia funções e coleções usando galaxy.ansible.com. Abaixo estão alguns comandos ansible-galaxy muito úteis que todo administrador de sistema usa de tempos em tempos:

  • ansible-galaxy list: Este comando galaxy exibe uma lista de todas as funções instaladas, com seus números de versão.
  • ansible-galaxy remove: Este comando galaxy remove uma função instalada no sistema.
  • ansible-galaxy info: Este comando galaxy fornecerá informações detalhadas sobre o Ansible Galaxy.
  • ansible-galaxy init : Este comando galaxy pode ser usado para criar um modelo de função adequado para envio ao Ansible Galaxy.
  • ansible-galaxy import : Este comando galaxy requer um login para importar uma função do site oficial da galáxia.

Os comandos acima (init, import, install, remove) podem ser usados ​​com o ansible-galaxy collection para gerenciar coleções usando o Ansible galaxy.

Agora vamos falar sobre funções e coleções no Ansible Galaxy.

Crie funções com o Ansible Galaxy

O Ansible Galaxy é basicamente um grande repositório público para funções do Ansible. As funções vêm com READMEs que explicam o uso e as variáveis. Galaxy tem muitos papéis que estão em constante evolução e crescimento.

O Galaxy pode adicionar fontes de função, como o GitHub, usando o git. O Ansible Galaxy nos permite criar funções do Ansible usando o comando ansible-galaxy . Ansible-galaxy init pode ser usado para inicializar uma nova função de galáxia ou você pode usar o ansible-galaxy install <name of role> para instalar a função.

Antes de poder usá-los em playbooks, a função deve ser baixada. Depois que eles forem colocados no diretório padrão /etc/ansible/roles , você poderá encontrar exemplos de funções.

Ansible Role Structure e seu significado

Abaixo estão os arquivos e diretórios criados quando uma função é instalada:

  • README.md é o arquivo Leiame que descreve a função. O arquivo leia-me contém todos os detalhes sobre os parâmetros de entrada e o exemplo yml .
  • tasks – Todas as tarefas podem ser inscritas pela Função em tasks. O ponto de entrada para a função é Main.yml. É aqui que a execução começa. Este arquivo pode conter outros arquivos.
  • Manipuladores – Esta categoria inclui manipuladores que podem ser usados ​​nesta função ou em qualquer outra função.
  • defaults – As variáveis ​​padrão para a Função.
  • vars – Variáveis ​​que são mais importantes que os padrões para Role.
  • Arquivos – Esses arquivos podem ser implantados usando Função.
  • Modelos – Esta seção contém modelos que podem ser usados ​​via Função.
  • meta – Os metadados podem ser usados ​​para definir as funções em meta. Esse arquivo também deve incluir quaisquer dependências de função.
  • Testes – Testes de CI a serem executados.
  • library – Incorporando Módulos ou Plugins em Funções. Não criado pelo comando init. Você também pode criar um módulo personalizado em Python nesta pasta e usá-lo em suas tarefas.

Crie coleções com o Ansible Galaxy

O Ansible Galaxy é a melhor ferramenta para gerenciar funções e é usado há anos. No entanto, você verá novos recursos ou alterações no Ansible Galaxy. A versão 2.2.8 do Ansible agora inclui o recurso de coleta.

O conteúdo Ansible pode ser distribuído usando coleções. Eles são usados ​​para empacotar e distribuir playbooks e funções, módulos e plugins.

A seguinte estrutura é a base das coleções:

 coleção/
├── documentos/
├── galaxy.yml
├── plugins/
│ ├──
módulos/
│ │ └── módulo1.py
│ ├──
inventário/
│ └── .../
├── README.md
├── papéis/
│ ├──
função1/
│ ├──
papel2/
│ └── .../
├── cartilhas/
│ ├──
arquivos/
│ ├──
vars/
│ ├──
modelos/
│ └── tarefas/
└── testes/

Criando um esqueleto de coleção

Para instalar uma coleção em seu computador, você pode usar o comando de instalação da coleção ansible-galaxy.

Notavelmente, alguns subcomandos também podem ser usados ​​com ansible galaxy.

  • init : Cria uma estrutura de coleção básica com base no modelo padrão do Ansible'sle ou no seu próprio
  • build : cria um artefato de coleção que pode ser carregado no Galaxy ou em seu próprio repositório
  • publish : Galaxy publica um artefato de coleção construído
  • install : Instala uma ou mais coleções

Conclusão

Ansible Galaxy é uma ótima maneira de organizar e pensar sobre seus livros de papéis cada vez maiores. O Ansible Galaxy tem aproximadamente 39 mil autores de comunidade, 30 mil funções e 1.656 coleções que podem ser usadas para iniciar rapidamente nosso projeto de automação. O guia do desenvolvedor e o guia do colaborador explicam como contribuir com o código Ansible Galaxy existente, que é um projeto de código aberto.

Você também pode estar interessado em tarefas do Sysadmin que você pode automatizar com o Ansible.