Como usar o Ansible Galaxy

Como usar o Ansible Galaxy
Ansible Galaxy é uma função e gerente de coleção para Ansible. Você pode compará -lo com o Node Gerenciador de pacotes NPM (Node Package Manager).JS.

A Ansible Galaxy hospeda papéis e coleções Ansible criadas pela comunidade. Em vez de reescrevê-los do zero, você pode instalá-lo no seu computador usando a ferramenta Ansible Galaxy Command-Line e usá-los em seus manuais.

Você também pode escrever seus papéis e coleções e enviá -los para Ansible Galaxy. Isso está fora do escopo deste artigo.

Neste artigo, vou mostrar como usar a ferramenta Ansible Galaxy Command-Line para instalar papéis e coleções da Ansible Galaxy e usá-las no seu manual. Então vamos começar.

Pré -requisitos:

Se você quiser experimentar os exemplos deste artigo,

1) Você deve ter o Ansible instalado em seu computador.

2) Você deve ter pelo menos 2 hosts Linux (um Debian 10 e um CentOS 7) configurados para Ansible Automation.

Existem muitos artigos sobre Linuxhint dedicados à instalação do Ansible e configurando hosts para Ansible Automation. Você pode conferi -los se necessário.

Configurando um diretório de projeto:

Antes de começarmos, vamos criar um diretório de projeto para que possamos organizar nossos arquivos de projeto.

Para criar um diretório de projeto galáxia-democon na tua LAR Diretório, execute o seguinte comando:

$ mkdir -pv Galaxy -Demo/Playbooks, Vars

Agora, navegue para o galáxia-democon diretório da seguinte maneira:

$ CD Galaxy-Demo/

Crie um arquivo de configuração Ansible Ansible.cfg No seu diretório de projeto da seguinte maneira:

$ Nano Ansible.cfg

Digite as seguintes linhas sua Ansible.cfg arquivo.

[Padrões]
inventário = hosts
host_key_checking = false

Depois de terminar, pressione + X seguido pela Y e Para salvar o Ansible.cfg arquivo de configuração.

Crie um arquivo de inventário Ansible anfitriões No seu diretório de projeto da seguinte maneira:

$ nano hosts

Digite as seguintes linhas em seu Anfitrião arquivo de inventário.

[base de dados]
VM1.NodeKite.com
[rede]
vm9.NodeKite.com

Aqui, VM1.NodeKite.com é um anfitrião do Debian 10, e vm9.NodeKite.com é um host do CentOS 7.

Depois de terminar, pressione + X seguido pela Y e Para salvar o anfitriões arquivo de inventário.

Para verificar se você pode fazer ping nos hosts Ansible remotos do seu computador, execute o seguinte comando:

$ Ansible All -u Ansible -M Ping

Como você pode ver, eu posso pingar meus hosts Ansible remotos VM1.NodeKite.com e vm9.NodeKite.com.

Procurando por papéis e coleções da Ansible Galaxy:

Você pode procurar papéis e coleções da Ansible Galaxy no site oficial da Ansible Galaxy.

Depois que a página da web carregar, clique no ícone de pesquisa para procurar papéis e coleções da Ansible Galaxy.

Agora, digite o que você está procurando e clique no ícone de pesquisa.

Neste exemplo, eu procurei MySQL Server. Como você pode ver, o resultado da pesquisa é exibido.

O termo de pesquisa MySQL Server retornou 2 coleções e muitos papéis.

Um papel é um módulo Ansible que faz coisas específicas. Uma coleção tem muitos papéis. Essa é a principal diferença entre um papel e uma coleção.

Para ver mais informações sobre uma função, clique na função.

O Detalhes guia de um pacote de função mostrará informações técnicas sobre o papel.

O Leia-me A guia exibirá as informações de instalação e uso da função.

Da mesma maneira, um pacote de coleção terá informações de instalação sobre o Detalhes aba.

No Contente guia, as funções que as coleções instalarão serão exibidas.

O Leia-me A guia exibirá informações úteis sobre a coleção.

Instalando e usando papéis de galáxia Ansible:

Nesta seção, vou mostrar como instalar e usar uma função de galáxia Ansible. Então vamos começar.

Digamos; Você quer instalar o papel da Ansible Galaxy Geerlingguy.mysql.

Para fazer isso, execute o seguinte comando:

$ Ansible-galaxy Install GeerlingGuy.mysql

Papel da galáxia Ansible Geerlingguy.mysql deve ser instalado.

Crie um manual install_database.Yaml no Playbooks/ diretório para testar o Geerlingguy.mysql papel como segue:

$ nano Playbooks/install_database.Yaml

Em seguida, digite as seguintes linhas no install_database.Yaml arquivo.

- Hosts: banco de dados
Usuário: Ansible
Torne -se: Sim
vars_files:
-… /Vars /banco de dados.Yaml
papéis:
- Função: Geerlingguy.mysql

Depois de terminar, pressione + X seguido pela Y e Para salvar o install_database.Yaml arquivo.

Aqui, o papel de Geerlingguy.mysql é usado no papéis seção.

O vars_files A seção é usada para adicionar as variáveis ​​de função/manual necessárias ao manual. Aqui, as variáveis ​​serão colocadas no VARS/banco de dados.Yaml arquivo.

Agora, crie um base de dados.Yaml arquivo no vars/ diretório da seguinte maneira:

$ nano vars/banco de dados.Yaml

Agora, adicione as variáveis ​​desejadas no base de dados.Yaml arquivo. Eu adicionei as seguintes variáveis ​​no base de dados.Yaml arquivo.

mysql_databases:
- Nome: DB01
Codificação: utf8mb4
Agrupamento: UTF8MB4_UNICODE_CI
mysql_users:
- Nome: Linuxhint
hospedar: "%"
Senha: segredo
Priv: "DB01.*:TODOS"

Essas variáveis ​​configuram Geeringguy.mysql função para que crie um novo usuário Linuxhint, Define a senha segredo para o Linuxhint Usuário, cria um novo banco de dados DB01 e subsídios Linuxhint Usuário acesso total ao DB01 base de dados.

Depois de terminar, pressione + X seguido pela Y e Para salvar o base de dados.Yaml arquivo.

Agora, você pode executar o install_database.Yaml Manual da seguinte maneira:

$ Ansible-playbook playbooks/install_database.Yaml

Como você pode ver, o manual está executando o Geerlingguy.mysql papel. Pode demorar um pouco para completar.

Neste ponto, o install_mysql.Yaml Playbook deve ser concluído.

No meu VM1.NodeKite.com Debian 10 Host, o mysql O serviço está em execução como você pode ver na captura de tela abaixo,

Também posso fazer o login no servidor de banco de dados MySQL como Linuxhint do utilizador.

Como você pode ver, o banco de dados DB01 também é criado.

Então, é assim que você instala e usa papéis de galáxia Ansible.

Instalando e usando coleções Ansible:

Nesta seção, vou mostrar como instalar e usar uma coleção Ansible Galaxy. Então vamos começar.

Digamos; Você quer instalar a coleção Ansible Galaxy Geerlingguy.php_roles.

Para fazer isso, execute o seguinte comando:

$ ANSIBLIBLE-GALAXY COLEÇÃO INSTALA GEERLINGGUY.php_roles

A coleção Geerlingguy.php_roles deve ser instalado.

Para usar a coleção, crie um novo Playbook Install_php.Yaml no Playbooks/ diretório da seguinte maneira:

$ Nano Playbooks/Install_php.Yaml

Agora, digite as seguintes linhas no install_php.Yaml arquivo.

- Hosts: Web
Usuário: Ansible
Torne -se: Sim
Coleções:
- Geerlingguy.php_roles
papéis:
- Função: Php
- Função: php_versions
VARs:
php_version: '7.3 '

Depois de terminar, pressione + X seguido pela Y e Para salvar o install_php.Yaml arquivo.

Essas linhas importam o Geerlingguy.php_roles coleção em seu manual.

No papéis Seção, você pode usar as funções necessárias em sua coleção. Aqui, eu adicionei 2 funções (php e php_versions) de Geerlingguy.php_roles coleção.

O php o papel não tem variáveis ​​específicas de função.

Se você deseja configurar uma função usando variáveis, você pode adicioná -las sob o vars seção do papel do seguinte modo.

Você pode encontrar quais funções estão disponíveis para uso na página oficial da Ansible Galaxy da coleção

A página oficial do Galaxy Official da função terá informações sobre quais variáveis ​​você pode usar para configurar a função.

Agora, você pode executar o install_php.Yaml Manual da seguinte maneira:

$ Ansible-Playbook Playbooks/Install_php.Yaml

Como você pode ver, o manual está executando. Pode demorar um pouco para completar.

Neste ponto, o manual deve ser concluído.

Como você pode ver, posso acessar o servidor da web do Apache 2 em execução no meu host CentOS 7 VM9.NodeKite.com.

Eu também criei um índice.php arquivo no /var/www/html/ Diretório do meu host CentOS 7 VM9.NodeKite.com.

Como você pode ver, o servidor da web pode servir índice.php página corretamente.

Então, é assim que você instala e usa coleções de galáxias Ansible.

Conclusão:

Neste artigo, expliquei o que é a galáxia Ansible. Eu também demonstrei como instalar e usar funções/coleções da Ansible Galaxy. A Ansible Galaxy ajudará você a evitar reinventar a roda, também conhecida como repetição de código. Você deve conseguir fazer seus projetos Ansible mais rapidamente usando Ansible Galaxy.