Le seul prérequis est d'installer Docker, ici sous Linux1 :
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
Vous pouvez aussi passer par http://play-with-docker.com (Cliquez sur "+ ADD NEW INSTANCE").
curl -s https://raw.githubusercontent.com/goffinet/docker-ansible-lab/master/startlab.sh > ./startlab.sh
chmod +x startlab.sh
./startlab.sh
Et vous êtes directement dans le contrôleur dans le dossier /root/lab
avec un inventaire prêt à l'emploi.
./startlab.sh --remove
startlab.sh
démarre quatre conteneurs docker et vous connecte à l'environnement du "controller".
ansible.controller est un conteneur Alpine Linux dans lequel ansible est disponible. On trouve le Dockerfile dans ce même repo. C'est lui qui gère les trois autres noeuds.
node0, node1 et node2 sont les conteneurs basés Centos 8 qui agissent comme des noeuds exploitables. Ces noeuds ont déjà été approvisionnés avec la clé ssh du conteneur ansible.controller. Ainsi, vous n'avez pas à vous occuper de l'installation des clés. Cette image est disponible sur Registre d'images de Docker et le Dockerfile est dans ce repo.
Certains ports des conteneurs sont exposés en tant que ports "exposés" sur l'hôte :
Conteneur | Port du conteneur | Port de l'hôte |
---|---|---|
node0 | 80 | $HOSTPORT_BASE |
node1 | 80 | $HOSTPORT_BASE+1 |
node2 | 80 | $HOSTPORT_BASE+2 |
node0 | 8080 | $HOSTPORT_BASE+3 |
node1 | 30000 | $HOSTPORT_BASE+4 |
node2 | 443 | $HOSTPORT_BASE+5 |
La variable HOSTPORT_BASE
est fixée à la valeur 42726
par défaut et peut être changée en démarrant le lab comme suit :
./startlab.sh --remove # Make sure you shut down the previous ones
HOSTPORT_BASE=<some_other_value> ./startlab.sh
Un dossier docker-ansible-lab/lab
sur votre machine locale est monté en tant que /root/lab
dans le conteneur ansible.controller. Ainsi, vous pouvez utiliser votre éditeur favori sur votre machine locale pour éditer des fichiers.
Cloner le code source et se rendre dans le dossier images :
git clone https://github.com/goffinet/docker-ansible-lab.git
cd docker-ansible-lab/images
make buil_all
Footnotes
-
Docker Desktop est aussi disponible pour Windows Install Docker Desktop on Windows et pour Mac Install Docker Desktop on Mac. ↩