Sign inSign up

lacrif/ansible

By lacrif

•Updated 8 months ago

Docker images for Ansible playbook and role testing.

Image
Developer tools
Operating systems
Content management system
0

2.1K

lacrif/ansible repository overview

⁠Linux Image Ansible

CI Docker pulls

⁠Description

Ce repository fournit des conteneurs Docker basés sur Rocky Linux et Ubuntu spécialement conçus pour tester des playbooks et rôles Ansible dans un environnement isolé et contrôlé. Ces images sont particulièrement utiles pour l'intégration continue (CI) et les tests automatisés avec des outils comme Jenkins et Travis CI.

⁠Caractéristiques

🐧 Rocky Linux 9 comme système d'exploitation de base 🔧 Ansible pré-installé et configuré 🔒 Environnement privilégié pour les tests complets 📦 Prêt à l'emploi pour l'intégration continue 🚀 Optimisé pour les tests de rôles et playbooks

⁠Prérequis

Docker installé sur votre système Connaissances de base d'Ansible et Docker

⁠Installation

⁠Depuis Docker Hub
docker pull lacrif/docker-ansible:<version>-<os>

Remplacez par la version souhaitée : 11 ou 12 Remplacez par le système souhaité : rockylinux9, ubuntu24.04

⁠Utilisation

⁠Démarrage du conteneur
docker run --detach --privileged \
  --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
  --cgroupns=host \
  lacrif/docker-ansible:<version>-<os>
⁠Test de rôles Ansible

Pour tester vos rôles Ansible, montez votre répertoire de travail actuel :

docker run --detach --privileged \
  --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
  --cgroupns=host \
  --volume="$(pwd)":/etc/ansible/roles/role_under_test:ro \
  lacrif/docker-ansible:<version>-<os>
⁠Exécution de commandes Ansible

Une fois le conteneur démarré, récupérez l'ID du conteneur et exécutez vos commandes Ansible :

# Vérifier la version d'Ansible
docker exec --tty [container_id] env TERM=xterm ansible --version

# Vérifier la syntaxe d'un playbook
docker exec --tty [container_id] env TERM=xterm ansible-playbook /path/to/ansible/playbook.yml --syntax-check

# Exécuter un playbook
docker exec --tty [container_id] env TERM=xterm ansible-playbook /path/to/ansible/playbook.yml
⁠Mode interactif

Pour une session interactive :

docker exec -it [container_id] /bin/bash

⁠Exemples d'utilisation

Test d'un rôle simple

# 1. Démarrer le conteneur avec votre rôle monté
docker run -d --privileged \
  --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
  --cgroupns=host \
  --volume="$(pwd)/my-role":/etc/ansible/roles/my-role:ro \
  --name ansible-test \
  lacrif/docker-linux-ansible:latest

# 2. Créer un playbook de test simple
docker exec ansible-test bash -c 'cat > /tmp/test-playbook.yml << EOF
---
- hosts: localhost
  connection: local
  roles:
    - my-role
EOF'

# 3. Exécuter le test
docker exec ansible-test ansible-playbook /tmp/test-playbook.yml

# 4. Nettoyer
docker stop ansible-test && docker rm ansible-test
⁠Intégration CI/CD

Exemple pour GitHub Actions :

name: Ansible Role Test
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Test with Docker
        run: |
          docker run --detach --privileged \
            --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
            --cgroupns=host \
            --volume="${PWD}":/etc/ansible/roles/role_under_test:ro \
            lacrif/docker-linux-ansible:latest
⁠Structure du projet
docker-ansible/
├── Dockerfile          # Définition de l'image Docker
├── README.md           # Ce fichier
├── LICENSE            # Licence du projet
└── scripts/           # Scripts utilitaires (si présents)

⁠Versions supportées

OS :

  • Rocky Linux 9 (version principale)
  • Ubuntu24.04 (version principale)

Ansible :

  • 11 (dernière version stable)
  • 12

⁠Notes

J'utilise Docker pour tester mes rôles et playbooks Ansible sur différents systèmes d'exploitation, grâce à des outils de CI comme Jenkins et Travis. Ce conteneur me permet de tester les rôles et les playbooks en exécutant Ansible localement à l'intérieur du conteneur.

Remarque importante : Cette image est destinée uniquement aux tests en environnement isolé et non à la production. Les paramètres et la configuration utilisés peuvent ne pas être adaptés à un environnement de production sécurisé et performant. Son utilisation en production est donc à vos propres risques.

⁠Auteur

Lacrif

Tag summary

Content type

Image

Digest

sha256:e242aa7d0…

Size

162.3 MB

Last updated

8 months ago

docker pull lacrif/ansible:11-noble