haxorof.docker_ce
Rôle Ansible pour Docker CE (Édition Communautaire)
IMPORTANT ! Même si ce rôle ne mentionne pas la prise en charge de certaines versions de distributions, cela peut tout de même fonctionner.
Ce rôle Ansible installe et configure Docker CE (Édition Communautaire) sur plusieurs distributions Linux différentes. L'objectif est de permettre à l'utilisateur de ce rôle de se concentrer uniquement sur la façon dont Docker doit être installé et configuré, en cachant les différences entre les différentes distributions.
ansible-galaxy role install haxorof.docker_ce
Caractéristiques
- Une méthode pour installer et configurer Docker CE sur les distributions Linux prises en charge.
- Prise en charge de l'installation du SDK Docker et de Docker Compose.
- Prise en charge des installations de plugins Docker avec un effort maximal.
- Désinstallation de Docker CE et configuration associée avec un effort maximal.
- Ajustements pour éviter des configurations boguées ou non fonctionnelles dans certaines distributions prises en charge.
- Facilite la configuration de Docker conformément à la documentation du Center of Internet Security (CIS).
Distributions Prises en Charge
Remarque ! Certaines versions de distributions répertoriées ci-dessous ne disposent que de Python 2.7, elles ne sont compatibles qu'avec des versions d'Ansible inférieures à 10.0.0 (ou des versions d'ansible-core inférieures à 2.17). Cela est dû à l'abandon du support de Python 2.7 dans Ansible 10.0.0 (ansible-core 2.17).
- AlmaLinux1
- Amazon Linux1
- CentOS1
- CentOS Stream
- Debian
- Fedora
- Linux Mint1 (basé sur Ubuntu).
- Raspbian (basé sur Debian)
- RHEL
- Rocky Linux1
- Ubuntu
1 Note : Docker ne prend pas en charge officiellement Docker CE sur cette distribution et certaines fonctionnalités pourraient/ne fonctionneront pas.
D'autres distributions peuvent également fonctionner avec ce rôle qui ne figurent pas dans la liste ci-dessus en désactivant la vérification de distribution en définissant la variable docker_do_checks
sur no
.
Journal des Modifications
Voir le journal des modifications ici
Compatibilité Ansible
- ansible
9.0.0
ou version ultérieure (ansible-core2.16
ou version ultérieure)
Pour que ce rôle prenne en charge plusieurs versions d'Ansible, il n'est pas possible d'éviter tous les avertissements de dépréciation d'Ansible. Consultez la documentation d'Ansible si vous souhaitez désactiver les avertissements de dépréciation.
Ce rôle essaie de prendre en charge la dernière version majeure et la version majeure précédente d'Ansible. Pour les versions d'Ansible prises en charge, voir ici.
Exigences de collection Ansible
Si seul ansible-core est installé, ces collections doivent également être installées pour que le rôle fonctionne :
- ansible.posix
- community.general
Exigences
Aucune exigence supplémentaire.
Variables du Rôle
Les variables liées à ce rôle sont listées ici.
Dépendances
Aucune.
Exemple de Playbook
Les sous-sections suivantes montrent différents types d'exemples pour illustrer ce que ce rôle prend en charge.
Le Plus Simple
- hosts: docker
roles:
- role: haxorof.docker_ce
Configurer le daemon Docker pour utiliser un proxy
- hosts: docker
vars:
docker_daemon_envs:
HTTP_PROXY: http://localhost:3128/
NO_PROXY: localhost,127.0.0.1,docker-registry.somecorporation.com
roles:
- haxorof.docker_ce
S'assurer qu'Ansible peut utiliser les modules Docker après l'installation
- hosts: test-host
vars:
docker_sdk: true
docker_compose: true
roles:
- haxorof.docker_ce
post_tasks:
- name: Test du conteneur hello
become: yes
docker_container:
name: hello
image: hello-world
- name: Test du service hello
become: yes
docker_service:
project_name: hello
definition:
version: '3'
services:
hello:
image: "hello-world"
Sur la voie d’une installation de moteur Docker conforme à la sécurité CIS
Cet exemple minimal ci-dessous montre quel type de configuration de rôle est nécessaire pour réussir les vérifications du Docker bench:
- hosts: docker
vars:
docker_plugins:
- type: authz
alias: opa-docker-authz
name: openpolicyagent/opa-docker-authz-v2:0.9
args: opa-args="-policy-file /opa/policies/authz.rego"
docker_enable_audit: yes
docker_daemon_config:
icc: false
log-driver: journald
userns-remap: default
live-restore: true
userland-proxy: false
no-new-privileges: true
roles:
- haxorof.docker_ce
Comme la configuration ci-dessus nécessite que les espaces de noms d'utilisateur Linux soient activés, des arguments GRUB supplémentaires pourraient être nécessaires. L'exemple ci-dessous montre un exemple des changements qui pourraient être nécessaires, et un redémarrage de l'hôte est requis pour que les modifications prennent pleinement effet.
# https://success.docker.com/article/user-namespace-runtime-error
- hosts: docker
roles:
- role: jtyr.grub_cmdline
vars:
grub_cmdline_add_args:
- namespace.unpriv_enable=1
- user_namespace.enable=1
become: yes
tasks:
- name: définir user.max_user_namespaces
sysctl:
name: user.max_user_namespaces
value: 15000
sysctl_set: yes
state: present
reload: yes
become: yes
Pour un exemple de travail complet sur CentOS 7, consultez ici.
Matrice de Test Automatisée
Voici les derniers résultats des tests automatisés qui se trouvent dans le répertoire tests :
Remarque ! Toutes les distributions énumérées dans la matrice de test ci-dessous n'ont pas fourni la dernière version de Docker CE publiée.
Suites de Tests
Suite | ID | Commentaire |
---|---|---|
s-1 | t_config | |
s-2 | t_postinstall | |
s-3 | t_auditd |
Matrice de Test
Symbole | Définition |
---|---|
:heavy_check_mark: | Tous les tests ont réussi |
:x: | Au moins un test a échoué / Non pris en charge |
:heavy_minus_sign: | Aucun test effectué / Pas encore testé |
# | s-1 | s-2 | s-3 | mis à jour |
---|---|---|---|---|
AlmaLinux 8 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
AlmaLinux 9 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Amazon Linux 2 | :heavy_check_mark: | :x: | :heavy_check_mark: | 2024-08-02 |
Amazon Linux 2023 | :heavy_check_mark: | :x: | :heavy_check_mark: | 2024-08-02 |
CentOS Stream 9 | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | 2024-08-02 |
Debian 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Debian 12 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Fedora 39 | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | 2024-08-02 |
Fedora 40 | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | 2024-08-02 |
Rocky Linux 8 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Rocky Linux 9 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Ubuntu 20.04 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Ubuntu 22.04 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-02 |
Ubuntu 24.04 | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | 2024-08-02 |
RHEL 8 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-12 |
RHEL 9 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 2024-08-12 |
Licence
Ceci est un projet open source sous la licence MIT.
Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian
ansible-galaxy install haxorof.docker_ce