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.


