Docker images for Ansible playbook and role testing.
2.1K
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.
🐧 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
Docker installé sur votre système Connaissances de base d'Ansible et Docker
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
docker run --detach --privileged \
--volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
--cgroupns=host \
lacrif/docker-ansible:<version>-<os>
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>
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
Pour une session interactive :
docker exec -it [container_id] /bin/bash
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
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
docker-ansible/
├── Dockerfile # Définition de l'image Docker
├── README.md # Ce fichier
├── LICENSE # Licence du projet
└── scripts/ # Scripts utilitaires (si présents)
OS :
Ansible :
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.
Lacrif
Content type
Image
Digest
sha256:e242aa7d0…
Size
162.3 MB
Last updated
8 months ago
docker pull lacrif/ansible:11-noble