Introducción
El trabajo con Ansible es más fácil de mantener cuando cada tarea de automatización reside en un directorio de proyecto claro. El trabajo con Ansible al estilo RHCE también requiere hábitos de control de versiones, ya que los playbooks, inventarios, variables y roles son archivos de texto que cambian con el tiempo.
En este laboratorio, creará un pequeño proyecto de Ansible en /home/labex/project/rhce-ansible, lo inicializará como un repositorio de Git, añadirá un primer inventario y confirmará la base del proyecto. El proyecto será intencionalmente pequeño, pero su diseño coincide con la estructura utilizada a lo largo de este curso de preparación.
Crear el espacio de trabajo del proyecto
En este paso, creará el directorio del proyecto y el primer conjunto de carpetas utilizadas por los proyectos de Ansible. La opción -p le indica a mkdir que cree los directorios padres faltantes y que no falle si un directorio ya existe.
Muévase al espacio de trabajo estándar de LabEx.
cd /home/labex/project
Cree un directorio de proyecto con subdirectorios comunes para inventarios, playbooks, variables, archivos, plantillas y roles.
mkdir -p rhce-ansible/{inventory,playbooks,group_vars,host_vars,roles,files,templates}
Los nombres de los directorios son convencionales, no obligatorios. Usarlos desde el principio le ayuda a reconocer dónde colocarán los laboratorios posteriores los archivos de inventario, variables, código de roles reutilizables y archivos fuente que los playbooks copian o utilizan como plantillas.
Liste el árbol del nuevo proyecto. La salida debería mostrar los directorios que acaba de crear.
find rhce-ansible -maxdepth 2 -type d | sort
find imprime los directorios en el árbol del proyecto, y sort hace que el orden sea estable. En este punto, los directorios están vacíos, pero su presencia constituye la estructura base que confirmará más adelante.
Inicializar Git y configurar la identidad local
En este paso, convertirá el proyecto en un repositorio de Git. Git almacena el historial de cambios en un directorio oculto llamado .git. Configurar la identidad localmente mantiene este laboratorio autocontenido y evita cambiar la configuración global del usuario.
Entre en el directorio del proyecto.
cd /home/labex/project/rhce-ansible
Inicialice el repositorio.
git init
Git crea un directorio oculto .git dentro del proyecto. Ese directorio es la base de datos del repositorio; los archivos visibles de Ansible permanecen en el árbol del proyecto normal.
Configure un nombre de autor y un correo electrónico locales para las confirmaciones (commits) en este repositorio.
git config user.name "LabEx RHCE Learner"
git config user.email "learner@example.com"
Compruebe el estado del repositorio. Git debería informar que se encuentra en una rama sin archivos rastreados todavía.
git status --short
El formato de estado corto es intencionalmente compacto. Los directorios vacíos no son rastreados por Git, por lo que es normal si este comando imprime poco o nada hasta que añada archivos reales.
Añadir notas del proyecto y reglas de exclusión
En este paso, añadirá dos archivos simples al proyecto. Un README.md explica el propósito del proyecto, y .gitignore mantiene los archivos temporales fuera del historial de Git.
Antes de ejecutar los comandos en este paso, regrese al directorio del proyecto para que las rutas relativas hagan referencia al proyecto de Ansible.
cd /home/labex/project/rhce-ansible
Utilice un "here-document" para crear README.md. El texto entre los marcadores EOF se escribe en el archivo exactamente como se muestra.
cat > README.md <<'EOF'
## RHCE Ansible Practice Project
This repository contains guided Ansible practice files for RHCE-style automation.
EOF
Cree un pequeño archivo .gitignore para los artefactos temporales comunes de Ansible.
cat > .gitignore <<'EOF'
*.retry
.artifacts/
__pycache__/
EOF
El patrón *.retry cubre los archivos de reintento de flujos de trabajo antiguos de Ansible, .artifacts/ es un lugar común para la salida generada, y __pycache__/ mantiene el bytecode de Python fuera del historial de su proyecto.
Muestre ambos archivos para confirmar su contenido antes de rastrearlos.
sed -n '1,20p' README.md .gitignore
Crear el primer inventario
En este paso, creará un pequeño inventario estático. Un inventario nombra los sistemas que Ansible puede gestionar. Para el primer laboratorio, el host llamado control utiliza ansible_connection=local, lo que significa que Ansible ejecuta las tareas en esta misma máquina virtual sin necesidad de SSH.
Antes de ejecutar los comandos en este paso, regrese al directorio del proyecto para que las rutas relativas hagan referencia al proyecto de Ansible.
cd /home/labex/project/rhce-ansible
Cree inventory/hosts.
cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF
La línea entre corchetes [control] define un grupo. La siguiente línea define un alias de host llamado control, y ansible_connection=local le indica a Ansible que no utilice SSH para este primer proyecto.
Utilice ansible-inventory para analizar el archivo. Este comando comprueba la sintaxis del inventario antes de usarlo en un playbook.
ansible-inventory -i inventory/hosts --graph
El gráfico debería incluir el grupo control y el host control.
Confirmar el proyecto base
En este paso, añadirá los archivos base a Git y creará la primera confirmación (commit). Una confirmación es un punto de control con nombre que podrá inspeccionar más adelante.
Antes de ejecutar los comandos en este paso, regrese al directorio del proyecto para que las rutas relativas hagan referencia al proyecto de Ansible.
cd /home/labex/project/rhce-ansible
Prepare los archivos (staging). La preparación le indica a Git qué cambios deben incluirse en la próxima confirmación.
git add README.md .gitignore inventory/hosts
Cree la confirmación base.
git commit -m "Create Ansible project baseline"
La salida de la confirmación debería mencionar los archivos añadidos al repositorio. Si Git dice que no hay nada que confirmar, vuelva a ejecutar git status --short y asegúrese de que README.md, .gitignore e inventory/hosts hayan sido preparados.
Inspeccione el estado final y la confirmación más reciente. Un estado limpio significa que todos los cambios rastreados han sido confirmados.
git status --short
git log --oneline -1
git status --short ahora debería estar vacío, y git log --oneline -1 debería mostrar el mensaje de la nueva confirmación. Esto le proporciona un punto de control verificado antes de que los laboratorios posteriores añadan más contenido de Ansible.
Resumen
Ha creado un espacio de trabajo limpio para un proyecto de Ansible, inicializado Git, añadido un inventario básico y confirmado la primera base del proyecto. Estos hábitos de proyecto facilitarán la gestión de futuros playbooks, variables, plantillas, roles y archivos de validación.


