Skip to content

feat: soporte para Ansible Execution Environments#13

Draft
juanpsm wants to merge 7 commits into
mainfrom
feat/execution-environments
Draft

feat: soporte para Ansible Execution Environments#13
juanpsm wants to merge 7 commits into
mainfrom
feat/execution-environments

Conversation

@juanpsm

@juanpsm juanpsm commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Closes #4

¿Qué agrega este PR?

Permite correr los playbooks desde un contenedor usando ansible-navigator.
El contenedor ya incluye Ansible y todos los roles necesarios, por lo que no
hace falta instalarlos en el host.

Se definen dos variantes de imagen:

  • Imagen pública (ghcr.io/mikroways/vm-setup): incluye solo el rol público
    mikroways.workstation. Se publica automáticamente en GitHub Container Registry
    al crear un tag semver (v1.2.3).

  • Imagen privada (vm-setup-mw): incluye además el rol privado
    mikroways.tools, alojado en GitLab. La clave SSH necesaria para clonarlo
    se inyecta durante el build como secreto (--mount=type=secret) y no queda
    en la imagen final
    . Su publicación automática está pendiente de habilitar
    (requiere confirmar permisos de packages privados en la org de GitHub).

Uso

El archivo ansible-navigator.yml configura los defaults para no tener que
repetir flags en cada comando:

# Correr contra vagrant (la forma más simple):
ansible-navigator run ansible/playbooks/vm-setup.yml \
  --container-options='--network=host' \
  --inventory ansible/inventory/vagrant.yml

Si GITHUB_API_TOKEN está definido en el entorno (via direnv), se pasa
automáticamente al contenedor para evitar rate limiting de GitHub al instalar
plugins de asdf.

Pendiente

  • Habilitar publicación automática de la imagen privada con Christian (confirmar
    permisos para packages privados en la organización de GitHub)

Supersede al PR #6.

juanpsm added 6 commits June 8, 2026 20:03
- Corrige requirements para incluir community.general y formato correcto
- Agrega opción workdir: null para evitar error de permisos en podman rootless
- Agrega ansible-builder y ansible-navigator a pyproject.toml
- Documenta opciones verificadas para vagrant, hosts remotos y localhost
- Documenta limitación de imagen MW por SSH durante build
- execution-environment-mw.yml: inyecta clave SSH via --mount=type=secret
  para que ansible-galaxy clone mikroways.tools desde GitLab; formatea el
  RUN en múltiples líneas y usa gitlab_key como nombre explícito con config SSH
- README: documenta build y uso de la imagen MW con vagrant; renombra
  vm-setup-ee → vm-setup y vm-setup-ee-mw → vm-setup-mw
…ments

- .github/workflows/publish-ee.yml: publica vm-setup en ghcr.io al pushear
  un tag semver; job MW deshabilitado hasta confirmar permisos de packages
- ansible/requirements/roles.yml y roles-mw.yml: ahora incluyen collections
  (community.general) para unificar con lo que usaba ansible-builder
- ansible-builder/execution-environment*.yml: apuntan a ansible/requirements/
  eliminando la duplicación de archivos
- README: documenta ambas variantes (ghcr.io y local) para todos los comandos
- Nuevo ansible-navigator.yml con imagen ghcr.io, modo stdout, pull policy
  tag y pass-through de GITHUB_API_TOKEN
- Nuevo ansible/inventory/vagrant.yml con todos los parámetros SSH de vagrant
- Agregar workstation_github_api_token a localhost.yml
- README: corregir nombres de archivos (roles.yml/roles-mw.yml), documentar
  defaults de ansible-navigator.yml, simplificar comandos vagrant con nuevo
  inventory, quitar --mode stdout y flags ya configurados como default
@juanpsm juanpsm mentioned this pull request Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Llevar este repositorio a la lógica de ansible execution environments

1 participant