Técnicas de Configuração de Inventário
Estrutura e Sintaxe do Arquivo de Inventário
O Ansible suporta múltiplas técnicas de configuração de inventário para organizar e gerenciar a infraestrutura de forma eficiente. Compreender essas técnicas permite gerenciamento preciso de hosts e configurações de conexão.
graph LR
A[Configuração do Inventário] --> B[Inventário Estático]
A --> C[Inventário Dinâmico]
B --> D[Formato INI]
B --> E[Formato YAML]
C --> F[Inventário baseado em script]
Configuração de Inventário Estático
Inventário no estilo INI
[webservers]
web1 ansible_host=192.168.1.100 ansible_user=ubuntu
web2 ansible_host=192.168.1.101 ansible_user=ubuntu
[databases]
db1 ansible_host=192.168.1.200 ansible_user=ubuntu
[production:children]
webservers
databases
Inventário no estilo YAML
all:
hosts:
web1:
ansible_host: 192.168.1.100
ansible_user: ubuntu
db1:
ansible_host: 192.168.1.200
ansible_user: ubuntu
children:
webservers:
hosts:
web1:
databases:
hosts:
db1:
Configuração de Parâmetros de Conexão
| Parâmetro |
Descrição |
Exemplo |
| ansible_host |
IP da máquina de destino |
192.168.1.100 |
| ansible_user |
Nome de usuário SSH |
ubuntu |
| ansible_port |
Porta SSH personalizada |
22 |
| ansible_ssh_private_key_file |
Caminho da chave SSH |
/home/user/.ssh/id_rsa |
Técnicas Avançadas de Agrupamento
[datacenter:children]
webservers
databases
[datacenter:vars]
ansible_connection=ssh
environment=production
Scripts de Inventário Dinâmicos
O inventário dinâmico permite gerar listas de hosts de forma programática:
#!/usr/bin/env python3
import json
def get_inventory():
return {
'webservers': {
'hosts': ['web1', 'web2'],
'vars': {'http_port': 80}
}
}
print(json.dumps(get_inventory(), indent=2))
Esta abordagem fornece gerenciamento de hosts flexível e automatizado para ambientes de infraestrutura complexos.