Como usar inventários estáticos e dinâmicos em Ansible - Parte 4
- 1665
- 216
- Loren Botsford
Nisso Parte 4 de série Ansible, explicaremos como usar inventário estático e dinâmico para definir grupos de hosts em Ansible.
Em um Ansible, hosts gerenciados ou servidores controlados pelo Nó de controle Ansible são definidos em um Arquivo de inventário do host conforme explicado. Um arquivo de inventário host é um arquivo de texto que consiste em nomes de host ou Endereços IP de hosts gerenciados ou servidores remotos.
Anfitriões gerenciados pode ser listado como entradas individuais ou categorizado em um nome de grupo como veremos mais tarde. Em Ansible, existem dois tipos de arquivos de inventário: Estático e Dinâmico.
Vamos dar uma olhada em cada um deles e ver como podemos gerenciá -los. Até agora, assumimos que você já instalou o Ansible no seu nó de controle e configuramos a conexão ssh sem senha com seus hosts gerenciados.
Arquivo de inventário de host estático
Em Ansible, Um arquivo de inventário estático é um arquivo de texto sem formatação que contém uma lista de hosts gerenciados declarados em um grupo host usando nomes de host ou endereços IP.
Um nome de grupo host é fechado entre colchetes i.e [nome do grupo]
. As entradas do host gerenciado estão posteriormente listadas abaixo do nome do grupo, cada uma em sua própria linha. Conforme discutido anteriormente, os hosts são listados usando nomes de host ou endereços IP.
[nome do grupo] Hospedar um host ip_address b ip_address host c ip_address
Para fins de ilustração, criaremos um arquivo de inventário estático.
# mkdir test_lab && CD test_lab # hosts vimArquivo de inventário estático
[Web Servers] 173.82.115.165 [Database_servers] 173.82.220.239 [Datacenter: crianças] WebServers Database_servers
Salve o arquivo e saia.
Como você pode ver no arquivo de inventário acima, criamos 2 grupos host: servidores da web e Database_servers. Além disso, criamos um grupo adicional chamado Centro de dados que inclui um grupo de grupos anfitriões denotados por ': crianças'
sufixo como visto acima.
Ansible também permite que grupos de hosts sejam colocados em um nome de grupo. No arquivo de inventário acima, o servidores da web e Database_servers grupos foram colocados sob o Centro de dados.
OBSERVAÇÃO: Não é obrigatório colocar hosts gerenciados em um grupo anfitrião. Você pode simplesmente listá -los usando seus nomes de host ou endereços IP, por exemplo.
173.82.202.239 172.82.115.165 load_balancer.pnl.com
Vamos agora usar alguns comandos Ansible para referenciar o arquivo de inventário do host. A sintaxe básica para gerenciamento de inventário é como mostrado.
$ ANSIBLE Host-Pattern -i/Path/OF/Inventory/File-List-HOSTS
Por exemplo,
$ Ansible All -i/root/test_labs/hosts -List -hostsListar os hosts Ansible
Como alternativa, você pode usar o personagem curinga *
para substituir 'todos'
argumento.
$ ANSIBLE * -i/root/test_labs/hosts -List -hostsListe os anfitriões Ansible usando curingas
Para listar os hosts em um grupo, especifique o grupo host no local do padrão host.
$ ANSIBLE WebServers -i/root/test_labs/hosts -List -hostsListe os anfitriões Ansible no grupo
Arquivo de inventário host dinâmico
Em uma configuração - especialmente uma configuração de nuvem, como AWS Onde o arquivo de inventário continua mudando constantemente à medida que você adiciona ou descomissiona servidores, acompanhando os hosts definidos no arquivo de inventário se torna um verdadeiro desafio. Torna -se inconveniente voltando ao arquivo host e atualizando a lista de hosts com seus endereços IP.
E é aqui que um inventário dinâmico vem jogar. Então, o que é um inventário dinâmico? Um inventário dinâmico é um script escrito em Python, PHP ou qualquer outra linguagem de programação. Ele é útil em ambientes em nuvem, como a AWS, onde os endereços IP mudam quando um servidor virtual é interrompido e iniciado novamente.
A Ansible já desenvolveu scripts de inventário para plataformas de nuvem pública, como o Google Compute Engine, a Amazon EC2 Instância, OpenStack, Rackspace, Sobbler, entre outros.
Quais são as vantagens de um inventário dinâmico sobre um inventário estático?
- Inventários dinâmicos fazem um trabalho perfeito para reduzir o erro humano à medida que a informação é coletada usando scripts.
- É necessário um esforço mínimo no gerenciamento de inventários.
Você pode escrever seu próprio inventário dinâmico personalizado em uma linguagem de programação de sua escolha. O inventário deve retornar um formato em JSON quando as opções apropriadas forem passadas.
Utilize um script de inventário dinâmico existente
Um script usado para criar um inventário dinâmico deve ser feito executável para que o Ansible possa usá -lo.
Para recuperar informações sobre os hosts dentro de um script de inventário dinâmico, basta executar.
# ./Script -List
Como apontado anteriormente, a saída deve estar em JSON no formato abaixo.
Um dicionário composto por grupos (i.E Web Servers, Database_servers)
- Uma lista de hosts gerenciados por grupo
- Um dicionário de variáveis
Meta dicionário
- Hosts e HostVars
Saída de amostra
"WebServers": "hosts": ["WebServer1.exemplo.com "," WebServer2.exemplo.com "]," vars ": ," database_servers ": " hosts ": [" mysql_db1 "," mysql_db2 "]," vars ": ," _meta ": " hosts ": " mysql_db2 ": ," WebServer2.exemplo.com ": ," WebServer1.exemplo.com ": ," mysql_db1 ":
Conclusão
Neste artigo, demonstramos como criar inventários estáticos e dinâmicos. Em resumo, um arquivo de inventário estático é um arquivo de texto sem formatação que contém uma lista de hosts gerenciados ou nós remotos cujos números e endereços IP permanecem razoavelmente constantes.
Por outro. Os endereços IP dos hosts também são dinâmicos ao parar e iniciar novos sistemas host. Esperamos que você tenha encontrado este tutorial informativo.