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]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]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.mysqlPapel 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.YamlEm seguida, digite as seguintes linhas no install_database.Yaml arquivo.
- Hosts: banco de dadosDepois 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.YamlAgora, 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: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.YamlComo 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_rolesA 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.YamlAgora, digite as seguintes linhas no install_php.Yaml arquivo.
- Hosts: WebDepois 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.YamlComo 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.