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.

GitHub tag Ansible Role License: MIT Build Status

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-core 2.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.

À propos du projet

Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian

Installer
ansible-galaxy install haxorof.docker_ce
Licence
mit
Téléchargements
285.2k
Propriétaire