Preparar um Projeto Ansible com Git

AnsibleBeginner
Pratique Agora

Introdução

O trabalho com Ansible é mais fácil de manter quando cada tarefa de automação reside em um diretório de projeto claro. O trabalho com Ansible no estilo RHCE também exige hábitos de controle de versão, pois playbooks, inventários, variáveis e roles são todos arquivos de texto que mudam ao longo do tempo.

Neste laboratório, você criará um pequeno projeto Ansible em /home/labex/project/rhce-ansible, inicializará como um repositório Git, adicionará um primeiro inventário e fará o commit da base. O projeto será intencionalmente pequeno, mas o layout corresponde à estrutura usada ao longo deste curso preparatório.

Criar o Espaço de Trabalho do Projeto

Nesta etapa, você criará o diretório do projeto e o primeiro conjunto de pastas usadas pelos projetos Ansible. A opção -p instrui o mkdir a criar diretórios pai ausentes e a não falhar caso um diretório já exista.

Entre no espaço de trabalho padrão do LabEx.

cd /home/labex/project

Crie um diretório de projeto com subdiretórios comuns para inventários, playbooks, variáveis, arquivos, templates e roles.

mkdir -p rhce-ansible/{inventory,playbooks,group_vars,host_vars,roles,files,templates}

Os nomes dos diretórios são convencionais, não obrigatórios. Usá-los desde o início ajuda a identificar onde os laboratórios posteriores colocarão arquivos de inventário, variáveis, código de roles reutilizáveis e arquivos de origem que os playbooks copiam ou usam como template.

Liste a árvore do novo projeto. A saída deve mostrar os diretórios que você acabou de criar.

find rhce-ansible -maxdepth 2 -type d | sort

O find exibe os diretórios na árvore do projeto, e o sort torna a ordem estável. Neste ponto, os diretórios estão vazios, mas sua presença é a estrutura base que você fará o commit mais tarde.

Inicializar o Git e Definir a Identidade Local

Nesta etapa, você transformará o projeto em um repositório Git. O Git armazena o histórico de alterações em um diretório oculto .git. Definir a identidade localmente mantém este laboratório autocontido e evita alterar as configurações globais do usuário.

Entre no diretório do projeto.

cd /home/labex/project/rhce-ansible

Inicialize o repositório.

git init

O Git cria um diretório oculto .git dentro do projeto. Esse diretório é o banco de dados do repositório; os arquivos visíveis do Ansible permanecem na árvore normal do projeto.

Defina um nome de autor e e-mail locais para os commits neste repositório.

git config user.name "LabEx RHCE Learner"
git config user.email "learner@example.com"

Verifique o status do repositório. O Git deve informar que você está em um branch sem arquivos rastreados ainda.

git status --short

O formato de status curto é intencionalmente compacto. Diretórios vazios não são rastreados pelo Git, portanto, é normal que este comando não exiba nada ou quase nada até que você adicione arquivos reais.

Adicionar Notas do Projeto e Regras de Ignorar

Nesta etapa, você adicionará dois arquivos simples ao projeto. Um README.md explica o propósito do projeto, e o .gitignore mantém arquivos temporários fora do histórico do Git.

Antes de executar os comandos nesta etapa, retorne ao diretório do projeto para que os caminhos relativos se refiram ao projeto Ansible.

cd /home/labex/project/rhce-ansible

Use um here-document para criar o README.md. O texto entre os marcadores EOF é gravado no arquivo exatamente como mostrado.

cat > README.md <<'EOF'
## RHCE Ansible Practice Project

This repository contains guided Ansible practice files for RHCE-style automation.
EOF

Crie um pequeno arquivo .gitignore para artefatos temporários comuns do Ansible.

cat > .gitignore <<'EOF'
*.retry
.artifacts/
__pycache__/
EOF

O padrão *.retry cobre arquivos de repetição de fluxos de trabalho mais antigos do Ansible, .artifacts/ é um local comum para saídas geradas, e __pycache__/ mantém o bytecode do Python fora do histórico do seu projeto.

Exiba ambos os arquivos para confirmar seus conteúdos antes de rastreá-los.

sed -n '1,20p' README.md .gitignore

Criar o Primeiro Inventário

Nesta etapa, você criará um pequeno inventário estático. Um inventário nomeia os sistemas que o Ansible pode gerenciar. Para o primeiro laboratório, o host chamado control usa ansible_connection=local, o que significa que o Ansible executa tarefas nesta mesma VM sem SSH.

Antes de executar os comandos nesta etapa, retorne ao diretório do projeto para que os caminhos relativos se refiram ao projeto Ansible.

cd /home/labex/project/rhce-ansible

Crie inventory/hosts.

cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF

A linha [control] entre colchetes define um grupo. A linha seguinte define um alias de host chamado control, e ansible_connection=local instrui o Ansible a não usar SSH para este primeiro projeto.

Use ansible-inventory para analisar o arquivo. Este comando verifica a sintaxe do inventário antes de você usá-lo em um playbook.

ansible-inventory -i inventory/hosts --graph

O gráfico deve incluir o grupo control e o host control.

Fazer o Commit do Projeto Base

Nesta etapa, você adicionará os arquivos base ao Git e criará o primeiro commit. Um commit é um ponto de verificação nomeado que você pode inspecionar mais tarde.

Antes de executar os comandos nesta etapa, retorne ao diretório do projeto para que os caminhos relativos se refiram ao projeto Ansible.

cd /home/labex/project/rhce-ansible

Prepare os arquivos (stage). O staging informa ao Git quais alterações devem ser incluídas no próximo commit.

git add README.md .gitignore inventory/hosts

Crie o commit base.

git commit -m "Create Ansible project baseline"

A saída do commit deve mencionar os arquivos adicionados ao repositório. Se o Git disser que não há nada para commitar, execute novamente git status --short e certifique-se de que README.md, .gitignore e inventory/hosts foram adicionados ao stage.

Inspecione o status final e o commit mais recente. Um status limpo significa que todas as alterações rastreadas foram commitadas.

git status --short
git log --oneline -1

O git status --short agora deve estar vazio, e o git log --oneline -1 deve mostrar a nova mensagem de commit. Isso lhe dá um ponto de verificação confiável antes que os laboratórios posteriores adicionem mais conteúdo ao Ansible.

Resumo

Você criou um espaço de trabalho limpo para o projeto Ansible, inicializou o Git, adicionou um inventário básico e fez o commit da primeira base. Esses hábitos de projeto tornarão mais fácil gerenciar playbooks, variáveis, templates, roles e arquivos de validação posteriormente.