@@ -19,17 +19,13 @@ cp roles/funcional/molecule/default/prepare.yml roles/developer/molecule/default
1919
2020## Paso 3: Editar molecule.yml
2121
22- Cambiar los nombres de las plataformas :
22+ Cambiar el nombre de la plataforma :
2323
2424``` yaml
2525platforms :
26- - name : debian13-developer # Cambiar 'funcional ' por el nombre del rol
26+ - name : debian13-developer # Cambiar 'developer ' por el nombre del rol
2727 image : geerlingguy/docker-debian13-ansible:latest
2828 # ... resto igual
29-
30- - name : ubuntu2204-developer # Cambiar 'funcional' por el nombre del rol
31- image : geerlingguy/docker-ubuntu2204-ansible:latest
32- # ... resto igual
3329```
3430
3531## Paso 4: Crear converge.yml
@@ -255,52 +251,13 @@ molecule test --destroy=never
255251
256252---
257253
258- # # Testing con Múltiples Distribuciones
259-
260- # ## Distribuciones Soportadas
261-
262- **Oficialmente soportadas** (tests por defecto):
263- - ✅ Debian 12 (Bookworm)
264- - ✅ Ubuntu 22.04 LTS (Jammy)
265-
266- **Compatibles** (agregar según necesidad):
267- - 🟡 Debian 13 (Trixie) - En desarrollo, puede tener limitaciones
268- - ✅ Ubuntu 24.04 LTS (Noble)
269-
270- # ## Agregar Debian 13 y Ubuntu 24.04 a los Tests
254+ # # Distribución soportada
271255
272- # ### Opción 1: Edición temporal de molecule.yml
273-
274- Para testing puntual, edita `roles/ROLNAME/molecule/default/molecule.yml` :
256+ El proyecto se testea únicamente contra **Debian 13 (Trixie)**. La plataforma estándar
257+ definida en `molecule.yml` de cada rol es :
275258
276259` ` ` yaml
277260platforms:
278- # Plataformas existentes
279- - name: debian13-ROLNAME
280- image: geerlingguy/docker-debian13-ansible:latest
281- command: ""
282- volumes:
283- - /sys/fs/cgroup:/sys/fs/cgroup:rw
284- cgroupns_mode: host
285- privileged: true
286- pre_build_image: true
287- tmpfs:
288- - /run
289- - /tmp
290-
291- - name: ubuntu2204-ROLNAME
292- image: geerlingguy/docker-ubuntu2204-ansible:latest
293- command: ""
294- volumes:
295- - /sys/fs/cgroup:/sys/fs/cgroup:rw
296- cgroupns_mode: host
297- privileged: true
298- pre_build_image: true
299- tmpfs:
300- - /run
301- - /tmp
302-
303- # ⬇️ AGREGAR ESTAS PLATAFORMAS
304261 - name: debian13-ROLNAME
305262 image: geerlingguy/docker-debian13-ansible:latest
306263 command: ""
@@ -312,184 +269,50 @@ platforms:
312269 tmpfs:
313270 - /run
314271 - /tmp
315-
316- - name: ubuntu2404-ROLNAME
317- image: geerlingguy/docker-ubuntu2404-ansible:latest
318- command: ""
319- volumes:
320- - /sys/fs/cgroup:/sys/fs/cgroup:rw
321- cgroupns_mode: host
322- privileged: true
323- pre_build_image: true
324- tmpfs:
325- - /run
326- - /tmp
327- ` ` `
328-
329- **Ejecutar test con 4 distribuciones**:
330- ` ` ` bash
331- molecule test
332- # Ejecutará en: debian13, ubuntu2204, debian13, ubuntu2404
333272` ` `
334273
335- # ### Opción 2: Testing selectivo por plataforma
274+ # ## Comandos útiles
336275
337276` ` ` bash
338- # Verificar qué imágenes Docker están disponibles
339- docker search geerlingguy/docker-debian
340- docker search geerlingguy/docker-ubuntu
341-
342- # Crear solo un contenedor específico
343- molecule create --platform-name ubuntu2404-funcional
344-
345- # Converge en esa plataforma
346- molecule converge --platform-name ubuntu2404-funcional
347-
348- # Verificar idempotencia
349- molecule converge --platform-name ubuntu2404-funcional
350-
351- # Verificar tests
352- molecule verify --platform-name ubuntu2404-funcional
353-
354- # Limpiar
355- molecule destroy --platform-name ubuntu2404-funcional
356- ` ` `
357-
358- # ### Opción 3: Crear scenarios separados
359-
360- Para testing permanente sin afectar el workflow por defecto :
361-
362- ` ` ` bash
363- cd roles/funcional
364-
365- # Crear scenario para testing extendido
366- molecule init scenario extended --driver-name docker
367-
368- # Editar molecule/extended/molecule.yml con las 4 distros
369- ` ` `
370-
371- **Ejecutar scenarios específicos**:
372- ` ` ` bash
373- molecule test --scenario-name default # Solo Debian 12 + Ubuntu 22.04
374- molecule test --scenario-name extended # Todas las distros
375- ` ` `
376-
377- # ## Consideraciones por Distribución
378-
379- # ### Debian 13 (Trixie)
380-
381- **Estado**: Testing/Unstable (a Noviembre 2025)
382-
383- **Limitaciones conocidas**:
384- - 🟡 Algunos paquetes pueden no estar disponibles
385- - 🟡 Puede requerir ajustes en `packages_exclude_debian_13`
386- - 🟡 La imagen Docker puede no estar actualizada
387-
388- **Paquetes problemáticos en Debian 13**:
389- ` ` ` yaml
390- # En vars.yml - ya configurado
391- packages_exclude_debian_13:
392- - stacer
393- - tldr
394- ` ` `
395-
396- **Verificar disponibilidad de imagen**:
397- ` ` ` bash
398- docker pull geerlingguy/docker-debian13-ansible:latest
399- # Si falla, la imagen aún no existe
400- ` ` `
401-
402- # ### Ubuntu 24.04 LTS (Noble)
403-
404- **Estado**: Stable (LTS lanzado en Abril 2024)
405-
406- **Ventajas**:
407- - ✅ Totalmente estable y soportado hasta 2029
408- - ✅ Todas las imágenes Docker disponibles
409- - ✅ Repositories y paquetes actualizados
410-
411- **Sin limitaciones conocidas** en los roles actuales.
412-
413- # ## Matrix Testing en CI/CD
414-
415- Para GitHub Actions, edita `.github/workflows/molecule.yml` :
416-
417- ` ` ` yaml
418- strategy:
419- matrix:
420- distro:
421- - debian13
422- - ubuntu2204
423- # Agregar según necesidad:
424- # - debian13 # Solo si la imagen está disponible
425- # - ubuntu2404 # Recomendado para validación LTS
426- python-version:
427- - '3.11'
428- ` ` `
429-
430- **Impacto en tiempo de CI**:
431- ```
432- 2 distros: ~ 15-20 minutos
433- 3 distros: ~ 22-30 minutos
434- 4 distros: ~ 30-40 minutos
435- ```
436-
437- **Recomendación de estrategia**:
438- 1. **Desarrollo diario**: Solo Debian 13 + Ubuntu 22.04
439- 2. **Pull Requests**: Agregar Ubuntu 24.04
440- 3. **Releases/Quarterly**: Full matrix con las 4 distros (si Debian 13 está disponible)
441-
442- ### Comandos útiles para testing multi-distro
443-
444- ```bash
445- # Ver todas las plataformas configuradas
277+ # Ver plataformas configuradas
446278molecule list
447279
448- # Crear todas las plataformas
280+ # Crear el contenedor
449281molecule create
450282
451- # Converge solo en Debian
283+ # Converge en la plataforma
452284molecule converge --platform-name debian13-funcional
453285
454- # Converge solo en Ubuntu
455- molecule converge --platform-name ubuntu2204-funcional
456- molecule converge --platform-name ubuntu2404-funcional
286+ # Verificar idempotencia (segunda corrida debe ser changed=0)
287+ molecule converge --platform-name debian13-funcional
457288
458- # Test paralelo (requiere molecule-parallel)
459- pip install molecule-parallel
460- molecule test --parallel
289+ # Verificar tests
290+ molecule verify --platform-name debian13-funcional
461291
462- # Ver logs de un contenedor específico
292+ # Limpiar
293+ molecule destroy
294+
295+ # Ver logs del contenedor
463296docker logs debian13-funcional
464297
465- # Ejecutar comando en un contenedor específico
298+ # Ejecutar comando dentro del contenedor
466299docker exec -it debian13-funcional bash
467300` ` `
468301
469- ### Troubleshooting por distro
302+ # ## Troubleshooting
470303
471- #### Debian 13 - Paquete no encontrado
304+ # ### Paquete no encontrado en Debian 13
472305
473306` ` ` yaml
474- # Solución: Agregar a packages_exclude_debian_13 en vars.yml
307+ # Solución: agregar a packages_exclude_debian_13 en vars.yml
475308- name: Excluir paquetes problemáticos
476309 ansible.builtin.set_fact:
477- packages_filtered : " {{ packages_system |
310+ packages_filtered: "{{ packages_system |
478311 difference(packages_exclude_debian_13) }}"
479- when : ansible_facts['distribution'] == 'Debian' and
312+ when: ansible_facts['distribution'] == 'Debian' and
480313 ansible_facts['distribution_major_version'] == '13'
481314` ` `
482315
483- #### Ubuntu 24.04 - Repository key cambió
484-
485- ` ` ` yaml
486- # Las URLs modernas ya usan el formato correcto
487- - name : Agregar repo con GPG moderno
488- ansible.builtin.apt_repository :
489- repo : " deb [signed-by=/usr/share/keyrings/key.gpg] https://..."
490- state : present
491- ` ` `
492-
493316---
494317
495318# # Limitaciones conocidas
0 commit comments