{"id":20140671,"url":"https://github.com/goffinet/docker-ansible-lab","last_synced_at":"2025-09-21T07:31:08.445Z","repository":{"id":116034108,"uuid":"315439712","full_name":"goffinet/docker-ansible-lab","owner":"goffinet","description":null,"archived":false,"fork":false,"pushed_at":"2020-11-29T19:16:42.000Z","size":23,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-13T21:54:24.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goffinet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-23T21:01:03.000Z","updated_at":"2023-10-17T12:41:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e4050aa-d234-42b0-8c60-fbdc229fa7d8","html_url":"https://github.com/goffinet/docker-ansible-lab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fdocker-ansible-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fdocker-ansible-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fdocker-ansible-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fdocker-ansible-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goffinet","download_url":"https://codeload.github.com/goffinet/docker-ansible-lab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233724006,"owners_count":18720116,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T21:53:05.698Z","updated_at":"2025-09-21T07:31:03.160Z","avatar_url":"https://github.com/goffinet.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-ansible-lab\n\n## Topologie\n\n![](https://lucid.app/publicSegments/view/9175d49c-c39c-4446-b245-b9e6829dc57a/image.png)\n\n## 1. Prérequis\n\nLe seul prérequis est d'installer **Docker**, ici sous Linux[^1] :\n\n```bash\ncurl -fsSL https://get.docker.com -o get-docker.sh \u0026\u0026 sh get-docker.sh\n```\n\n[^1]: Docker Desktop est aussi disponible pour Windows [Install Docker Desktop on Windows](https://docs.docker.com/docker-for-windows/install/) et pour Mac [Install Docker Desktop on Mac](https://docs.docker.com/docker-for-mac/install/).\n\nVous pouvez aussi passer par [http://play-with-docker.com](http://play-with-docker.com) (Cliquez sur \"+ ADD NEW INSTANCE\").\n\n## 2. Se procurer le script\n\n```bash\ncurl -s https://raw.githubusercontent.com/goffinet/docker-ansible-lab/master/startlab.sh \u003e ./startlab.sh\nchmod +x startlab.sh\n```\n\n## 3. Lancer le lab\n\n```bash\n./startlab.sh\n```\n\nEt vous êtes directement dans le contrôleur dans le dossier `/root/lab` avec un inventaire prêt à l'emploi.\n\n## 4. Nettoyage du lab\n\n```bash\n./startlab.sh --remove\n```\n\n## 5. Conteneurs\n\n`startlab.sh` démarre quatre conteneurs docker et vous connecte à l'environnement du \"controller\".\n\n**ansible.controller** est un conteneur Alpine Linux dans lequel ansible est disponible. On trouve le [Dockerfile](https://github.com/goffinet/docker-ansible-lab/blob/master/images/ansible-controller/Dockerfile) dans ce même repo. C'est lui qui gère les trois autres noeuds.\n\n**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](https://hub.docker.com/repository/docker/goffinet/centos-8-ansible-docker-host) et le [Dockerfile](https://github.com/goffinet/docker-ansible-lab/blob/master/images/centos-8-ansible-docker-host/Dockerfile) est dans ce repo.\n\n## 6. Port Mapping\n\nCertains ports des conteneurs sont exposés en tant que ports \"exposés\" sur l'hôte :\n\n| Conteneur | Port du conteneur| Port de l'hôte |\n| --- | --- | --- |\n| node0 | 80 | `$HOSTPORT_BASE` |\n| node1 | 80 | `$HOSTPORT_BASE+1` |\n| node2 | 80 | `$HOSTPORT_BASE+2` |\n| node0 | 8080 | `$HOSTPORT_BASE+3` |\n| node1 | 30000 | `$HOSTPORT_BASE+4` |\n| node2 | 443 | `$HOSTPORT_BASE+5` |\n\nLa variable `HOSTPORT_BASE` est fixée à la valeur `42726` par défaut et peut être changée en démarrant le lab comme suit :\n\n```bash\n./startlab.sh --remove # Make sure you shut down the previous ones\nHOSTPORT_BASE=\u003csome_other_value\u003e ./startlab.sh\n\n```\n\n## 7. Dossier de l'espace de travail Workspace\n\nUn 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.\n\n\n## 8. Fabriquer les images Docker\n\nCloner le code source et se rendre dans le dossier images :\n\n```bash\ngit clone https://github.com/goffinet/docker-ansible-lab.git\ncd docker-ansible-lab/images\nmake buil_all\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoffinet%2Fdocker-ansible-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoffinet%2Fdocker-ansible-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoffinet%2Fdocker-ansible-lab/lists"}