Ansible

Como usar o Ansible Galaxy

Como usar o Ansible Galaxy
O Ansible Galaxy é um gerenciador de funções e coleções do Ansible. Você pode compará-lo com o gerenciador de pacotes NPM (Node Package Manager) do Node.js.

Ansible Galaxy hospeda funções e coleções de Ansible criadas pela comunidade. Em vez de reescrevê-los do zero, você pode instalá-los em seu computador usando a ferramenta de linha de comando Ansible Galaxy e usá-los em seus manuais.

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

Neste artigo, vou mostrar como usar a ferramenta de linha de comando Ansible Galaxy para instalar funções e coleções do Ansible Galaxy e usá-los em 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 automação Ansible.

Existem muitos artigos sobre LinuxHint dedicados à instalação do Ansible e configuração de hosts para automação do Ansible. Você pode verificá-los se necessário.

Configurando um diretório de projeto:

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

Para criar um diretório de projeto galaxy-demo / na tua CASA diretório, execute o seguinte comando:

$ mkdir -pv galaxy-demo / playbooks, vars

Agora, navegue até o galaxy-demo / diretório da seguinte forma:

$ cd galaxy-demo /

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

$ nano ansible.cfg

Digite nas seguintes linhas o seu ansible.cfg Arquivo.

[padrões]
inventário = hosts
host_key_checking = False

Assim que terminar, pressione + X seguido pela Y e para salvar o ansible.cfg arquivo de configuração.

Crie um arquivo de inventário Ansible hospedeiros no diretório do seu projeto da seguinte maneira:

hosts $ nano

Digite as seguintes linhas em seu hospedeiro arquivo de inventário.

[base de dados]
vm1.nodekite.com
[rede]
vm9.nodekite.com

Aqui, vm1.nodekite.com é um host Debian 10 e vm9.nodekite.com é um host CentOS 7.

Assim que terminar, pressione + X seguido pela Y e para salvar o hospedeiros arquivo de inventário.

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

$ ansible all -u ansible -m ping

Como você pode ver, posso executar ping em meus hosts Ansible remotos vm1.nodekite.com e vm9.nodekite.com.

Pesquisando funções e coleções do Ansible Galaxy:

Você pode pesquisar as funções e coleções do Ansible Galaxy no site oficial do Ansible Galaxy.

Assim que a página da web carregar, clique no ícone de pesquisa para pesquisar funções e coleções do Ansible Galaxy.

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

Neste exemplo, eu pesquisei servidor mysql. Como você pode ver, o resultado da pesquisa é exibido.

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

Uma função é um módulo Ansible que faz coisas específicas. Uma coleção tem muitas funções. Essa é a principal diferença entre uma função 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ções mostrará informações técnicas sobre a função.

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

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

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

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

Instalando e usando as funções do Ansible Galaxy:

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

Digamos; você deseja instalar a função Ansible Galaxy geerlingguy.mysql.

Para fazer isso, execute o seguinte comando:

$ ansible-galaxy install geerlingguy.mysql

Papel de Ansible Galaxy geerlingguy.mysql deve ser instalado.

Crie um manual install_database.yaml no manuais / diretório para testar o geerlingguy.mysql função da seguinte forma:

$ nano playbooks / install_database.yaml

Em seguida, digite as seguintes linhas no install_database.yaml Arquivo.

- hosts: banco de dados
usuário: ansible
tornar-se: sim
vars_files:
-… / Vars / banco de dados.yaml
papéis:
- papel: geerlingguy.mysql

Assim que 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 seção é usada para adicionar as variáveis ​​necessárias de papel / manual 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 forma:

$ nano vars / banco de dados.yaml

Agora, adicione suas 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
hospedeiro: "%"
senha: segredo
priv: "db01.*:TUDO"

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 bolsas linuxhint acesso total do usuário ao db01 base de dados.

Assim que 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 forma:

$ ansible-playbook playbooks / install_database.yaml

Como você pode ver, o manual está executando o geerlingguy.mysql Função. Pode demorar um pouco para ser concluído.

Neste ponto, o install_mysql.yaml manual deve ser completado.

Na minha vm1.nodekite.com o host Debian 10, o mysql o serviço está funcionando como você pode ver na captura de tela abaixo,

Também posso fazer 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 funções do Ansible Galaxy.

Instalando e usando coleções Ansible:

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

Digamos; você deseja instalar a coleção Ansible Galaxy geerlingguy.php_roles.

Para fazer isso, execute o seguinte comando:

$ ansible-galaxy collection install 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 manuais / diretório da seguinte forma:

$ nano playbooks / install_php.yaml

Agora, digite as seguintes linhas no install_php.yaml Arquivo.

- hosts: web
usuário: ansible
tornar-se: sim
coleções:
- geerlingguy.php_roles
papéis:
- papel: php
- papel: php_versions
vars:
php_version: '7.3 '

Assim que terminar, pressione + X seguido pela Y e para salvar o install_php.yaml Arquivo.

Essas linhas importam o geerlingguy.php_roles coleção no seu manual.

No papéis seção, você pode usar as funções de que precisa em sua coleção. Aqui, adicionei 2 funções (php e php_versions) de geerlingguy.php_roles coleção.

O php função não tem nenhuma variável específica da função.

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

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

A página oficial do Ansible Galaxy 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 forma:

$ ansible-playbook playbooks / install_php.yaml

Como você pode ver, o manual está sendo executado. Pode demorar um pouco para ser concluído.

Neste ponto, o manual deve ser concluído.

Como você pode ver, posso acessar o servidor web 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 as coleções do Ansible Galaxy.

Conclusão:

Neste artigo, expliquei o que é Ansible Galaxy. Também demonstrei como instalar e usar funções / coleções do Ansible Galaxy. O Ansible Galaxy o ajudará a evitar a reinvenção da roda, também conhecido como repetição de código. Você deve conseguir concluir seus projetos do Ansible mais rapidamente usando o Ansible Galaxy.

Vulkan para usuários de Linux
A cada nova geração de placas gráficas, vemos os desenvolvedores de jogos ultrapassarem os limites da fidelidade gráfica e se aproximarem mais do foto...
OpenTTD vs Simutrans
Criar sua própria simulação de transporte pode ser divertido, relaxante e extremamente atraente. É por isso que você precisa ter certeza de experiment...
Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...