User Tools

Site Tools


ansible_role

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ansible_role [2025/07/26 17:09] – - Imported by DokuWiki Advanced Plugin wikiadmansible_role [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Gerenciando Roles ====== 
-===== Roles ===== 
- 
-Roles são pacotes de configuração que podem ser usados para definir a configuração de um servidor. Cada role contém uma ou mais playbooks, que podem ser usados para configurar um servidor de acordo com as necessidades. 
- 
-Através de Roles definimos o que precisa ser configurado em cada grupo de servidores, permitindo assim criar um código modular, que depois pode ser compartilhado e reutilizado. 
- 
-Um exemplo prático é criar uma Role chamada database, responsável em instalar e configurar servidores MySQL e PostgreSQL. 
- 
-Roles são boas práticas para organização de múltiplas tarefas, relacionando e encapsulando os dados necessários para realizar essas tarefas. Por exemplo, a instalação de um servidor de banco de dados, que envolve a adição de um repositório, a instalação de pacotes e a configuração de arquivos. 
- 
-Uma implementação muitas vezes requer dados adicionais como variáveis, arquivos, modelos dinâmicos e muito mais. As Roles fazem o papel de PlayBooks organizando tarefas e dados relacionados em uma estrutura mais coerente. 
- 
-==== Estrutura de uma Role ==== 
-{{:role.png|}} 
- 
-A estrutura de uma Role separa cada item de uma implementação feita através do Ansible. 
- 
-Acompanhe a descrição de cada diretório: 
-  * **defaults:** Armazena o arquivo ''main.yml'' contendo as variáveis que terão a prioridade mais baixa de todas as variáveis disponíveis, e pode ser facilmente substituído por qualquer outra variável, incluindo variáveis de inventário; 
-  * **files:** Armazena arquivos de configuração de cada serviço. Exemplo: ''haproxy.cf''; 
-  * **handlers:** Armazena o arquivo ''main.yml'' contendo as Handlers de cada serviço, como por exemplo, reler ou reiniciar o HaProxy após seu arquivo de configuração ser modificado; 
-  * **meta:** Armazena o arquivo ''main.yml'' contendo as dependências que uma Role possui; 
-  * **tasks:** Armazena o arquivo ''main.yml'' contendo as tarefas de instalação e configuração de cada serviço; 
-  * **templates:** Armazena arquivos de templates que utilizam variáveis de fatos ou personalizadas. A extensão deve terminar em ''.j2'' com base no template Jinja2 do Python. Exemplo: ''haproxy.cf.j2''; 
-  * **tests:** O diretório tests possui um arquivo de inventário de amostra, que aponta para localhost, e um playbook ''test.yml'', que está configurado para chamar a Role que você acabou de criar; 
-  * **vars:** Armazena o arquivo main.yml contendo as variáveis que serão utilizadas pelo arquivo ''main.yml'' da pasta tasks. 
- 
-===== Ansible Galaxy ===== 
-O Ansible Galaxy é um repositório de pacotes de software para Ansible, que permite baixar e usar pacotes de software de automação de infraestrutura construídos por outros usuários da comunidade Ansible. Os pacotes de software estão disponíveis para todos os sistemas operacionais suportados por Ansible. 
- 
-Para usar o Galaxy você precisa ter uma conta através de um registro gratuito na página do Galaxy. 
- 
-[[https://galaxy.ansible.com|Ansible Galaxy]] 
- 
-==== Comando ansible-galaxy ==== 
- 
-O comando ansible-galaxy permite criar roles (ou pacotes de roles). Você também tem a opção de publicar suas Roles no site https://galaxy.ansible.com/ através de uma conta gratuita. 
- 
-Para criar uma nova Role, use o comando //''ansible-galaxy role init''//. Exemplo: 
-<file bash> 
-$ ansible-galaxy role init apache 
-</file> 
- 
  
ansible_role.1753560543.txt.gz · Last modified: by wikiadm