Leia isso em outros idiomas:
 Inglês,
 Inglês,  日本語,
 日本語,  Português do Brasil,
 Português do Brasil,  Francês,
 Francês, Espanhol.
 Espanhol.
Neste exercício, vamos explorar a mais recente ferramenta de linha de comando do Ansible, o ansible-navigator, para aprender a trabalhar com arquivos de inventário e a listar módulos quando precisarmos de ajuda. O objetivo é familiarizar-se com o funcionamento do ansible-navigator e como ele pode ser utilizado para enriquecer sua experiência com o Ansible.
Um arquivo de inventário é um arquivo de texto que especifica os nós que serão gerenciados pela máquina de controle. Os nós a serem gerenciados podem incluir uma lista de nomes de host ou endereços IP desses nós. O arquivo de inventário permite organizar os nós em grupos, declarando um nome de grupo de host entre colchetes ([]).
Para usar o comando ansible-navigator para gerenciamento de hosts, você precisa fornecer um arquivo de inventário que define uma lista de hosts a serem gerenciados a partir do nó de controle. Neste laboratório, o inventário é fornecido pelo seu instrutor. O arquivo de inventário é um arquivo formatado em ini que lista seus hosts, organizados em grupos, fornecendo também algumas variáveis. Um exemplo pode ser visto a seguir:
[web]
node1 ansible_host=<X.X.X.X>
node2 ansible_host=<Y.Y.Y.Y>
node3 ansible_host=<Z.Z.Z.Z>
[control]
ansible-1 ansible_host=44.55.66.77
Para visualizar seu inventário com ansible-navigator, use o comando ansible-navigator inventory --list -m stdout. Este comando exibe todos os nós e seus respectivos grupos.
[student@ansible-1 rhel_workshop]$ cd /home/student
[student@ansible-1 ~]$ ansible-navigator inventory --list -m stdout
{
    "_meta": {
        "hostvars": {
            "ansible-1": {
                "ansible_host": "3.236.186.92"            },
            "node1": {
                "ansible_host": "3.239.234.187"
            },
            "node2": {
                "ansible_host": "75.101.228.151"
            },
            "node3": {
                "ansible_host": "100.27.38.142"
            }
        }
    },
    "all": {
        "children": [
            "control",
            "ungrouped",
            "web"
        ]
    },
    "control": {
        "hosts": [
            "ansible-1"
        ]
    },
    "web": {
        "hosts": [
            "node1",
            "node2",
            "node3"
        ]
    }
}
NOTA: -m é uma abreviação para --mode que permite alternar o modo para saída padrão em vez de usar a interface de usuário baseada em texto (TUI).
Para uma visão menos detalhada, ansible-navigator inventory --graph -m stdout oferece uma representação visual dos agrupamentos.
[student@ansible-1 ~]$ ansible-navigator inventory --graph -m stdout
@all:
  |--@control:
  |  |--ansible-1
  |--@ungrouped:
  |--@web:
  |  |--node1
  |  |--node2
  |  |--node3
Podemos ver claramente que os nós: node1, node2, node3 fazem parte do grupo web, enquanto ansible-1 faz parte do grupo control.
Um arquivo de inventário pode organizar seus hosts em grupos ou definir variáveis. Em nosso exemplo, o inventário atual possui os grupos web e control. Execute ansible-navigator com esses padrões de host e observe a saída:
Usando o comando ansible-navigator inventory, você pode executar comandos que fornecem informações apenas para um host ou grupo. Por exemplo, execute os seguintes comandos e observe suas saídas diferentes.
[student@ansible-1 ~]$ ansible-navigator inventory --graph web -m stdout
[student@ansible-1 ~]$ ansible-navigator inventory --graph control -m stdout
[student@ansible-1 ~]$ ansible-navigator inventory --host node1 -m stdout
Dica
O inventário pode conter mais dados. Por exemplo, se você tem hosts que rodam em portas SSH não padrão, você pode colocar o número da porta após o nome do host com dois pontos. Também é possível definir nomes específicos para o Ansible e fazê-los apontar para o IP ou nome do host.
A Plataforma de Automação Ansible vem com vários Ambientes de Execução suportados (EEs). Esses EEs vêm com coleções suportadas agrupadas que contêm conteúdo suportado, incluindo módulos.
Dica
Em
ansible-navigator, saia pressionando o botãoESC.
Para navegar pelos seus módulos disponíveis, primeiro entre no modo interativo:
$ ansible-navigator

Navegue por uma coleção digitando :collections
:collections

Para explorar os módulos de uma coleção específica, insira o número ao lado do nome da coleção.
Por exemplo, na captura de tela acima, o número 0 corresponde à coleção amazon.aws. Para ampliar a visualização da coleção, digite o número 0.
0

Acesse diretamente a documentação detalhada de qualquer módulo especificando seu número correspondente. Por exemplo, o módulo ec2_tag corresponde ao número 24.
:24
Rolando para baixo usando as teclas de seta ou page-up e page-down, podemos ver documentação e exemplos.

Você pode ir diretamente para um módulo específico simplesmente digitando :doc namespace.collection.module-name. Por exemplo, digitar :doc amazon.aws.ec2_tag iria direto para a página final mostrada acima.
Dica
Ambientes de execução diferentes podem ter acesso a diferentes coleções e diferentes versões dessas coleções. Ao usar a documentação integrada, você sabe que será precisa para aquela versão específica da coleção.
Clique aqui para retornar ao Workshop Ansible for Red Hat Enterprise Linux