Fundamentos do Inventário Ansible
O que é o Inventário Ansible?
O Inventário Ansible é um ficheiro ou conjunto de ficheiros que define os hosts (servidores, dispositivos de rede, etc.) que o Ansible pode gerir. Fornece ao Ansible informações sobre os sistemas alvo, como os seus nomes de host, endereços IP e outros metadados.
Estrutura do Ficheiro de Inventário
O ficheiro de Inventário Ansible segue um formato específico. Pode estar em vários formatos, como INI, YAML ou JSON. Aqui está um exemplo de um ficheiro de Inventário Ansible no estilo INI:
[webservers]
web01 ansible_host=192.168.1.100
web02 ansible_host=192.168.1.101
[databases]
db01 ansible_host=192.168.1.200
db02 ansible_host=192.168.1.201
[all:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=/path/to/your/ssh/key.pem
Neste exemplo, o ficheiro de Inventário define dois grupos: webservers e databases. Cada grupo contém dois hosts, com os seus respetivos endereços IP ou nomes de host. A secção [all:vars] define variáveis globais, como o utilizador SSH e o ficheiro de chave privada a ser usado para todos os hosts.
Plugins de Inventário
O Ansible suporta vários Plugins de Inventário, que permitem utilizar diferentes fontes para o seu Inventário, como provedores em nuvem, ferramentas de gestão de configuração ou mesmo scripts dinâmicos. Isto proporciona flexibilidade na gestão da sua infraestrutura.
Por exemplo, pode utilizar o Plugin de Inventário aws_ec2 para descobrir e gerir automaticamente as suas instâncias AWS EC2:
plugin: aws_ec2
regions:
- us-east-1
- us-west-2
filters:
tag:Environment: production
Este Plugin de Inventário descobrirá e incluirá automaticamente todas as instâncias EC2 com a etiqueta Environment=production no seu Inventário Ansible.
Inventário Dinâmico
O Ansible também suporta Inventário Dinâmico, onde o Inventário é gerado em tempo de execução, em vez de ser definido estaticamente num ficheiro. Isto é útil quando a sua infraestrutura está em constante mudança ou quando precisa de obter informações de fontes externas.
Pode criar um script de Inventário Dinâmico numa qualquer linguagem (por exemplo, Python, Bash, etc.) que produza um formato JSON válido. O Ansible utilizará então este script para preencher o Inventário.
Compreendendo os fundamentos do Inventário Ansible, pode gerir eficazmente a sua infraestrutura e garantir que o Ansible pode comunicar com os hosts corretos.