Ansible Galaxy: tudo o que você precisa saber
Publicados: 2022-09-29Ansible é 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.

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

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 é 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.

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.

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

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

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

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.
