arc-ts.docker

Rôle Ansible : Docker

Ce rôle gère l'installation et la configuration du moteur Docker, avec prise en charge de la gestion des identifiants et de la personnalisation du stockage. Il a été testé avec CentOS 7.3, Debian Jessie, Ubuntu Trusty et Ubuntu Xenial. La version RHEL 7.x est soutenue de manière souple.

Statut de la construction

Sommaire


Exigences

Ce rôle nécessite Ansible 2.2 ou une version supérieure pour un fonctionnement complet.

REMARQUE : La version 2.x.x et supérieure de ce rôle SOUTIENT UNIQUEMENT le schéma de version YY.MM (par exemple, docker-ce-17.03.1). Pour les versions plus anciennes (par exemple, docker-engine-1.13.1), veuillez utiliser la version 1.x.x de ce rôle.

REMARQUE : Docker Inc. n'utilise plus de dépôts accessibles au public pour sa version Enterprise. Avec la version 2.0.0 de ce rôle, la prise en charge de la gestion des dépôts d'entreprise a été supprimée. Cependant, il est toujours capable de gérer et d'installer la version Enterprise.

Dépendances

La bibliothèque Python docker ou docker-py est requise pour tout composant du rôle en dehors de l'installation du moteur Docker lui-même. Cependant, le rôle s'occupe d'installer la bonne version, si cela est configuré.

REMARQUE : Depuis le 13/04/2017, Ansible ne prend pas en charge la bibliothèque Python 2.0.2 et supérieure. Le support est prévu pour la version 2.4 d'Ansible. Pour plus d'informations, veuillez consulter le problème GitHub ici : https://github.com/ansible/ansible/issues/22993

Variables de rôle

Contrôle d'exécution

Active ou désactive des composants spécifiques du rôle Docker.

Nom de la variable Par défaut Description
external_dependency_delay 20 Le temps en secondes entre les tentatives de dépendances externes. (dépôts, serveurs de clés, etc.)
external_dependency_retries 6 Le nombre de tentatives pour accéder à une dépendance externe.
docker_manage_py true Installe la bibliothèque Python Docker, soit à partir du dépôt, soit par pip. Remarque : Ceci est requis pour la gestion des conteneurs, des identifiants, des images et des réseaux.
docker_manage_engine_repo true Gère le dépôt Docker. Prend en charge à la fois les dépôts Open Source et Commercialement Supportés.
docker_manage_engine_storage false Si true, le pilote de stockage pour le moteur Docker sera géré par le rôle. Aucun pilote de stockage ou option de stockage ne doit être fourni manuellement.
docker_manage_engine_users true Crée et gère un groupe docker qui est autorisé à interagir avec Docker.
docker_manage_registry_credentials true Gère les identifiants pour une liste fournie de registres. Remarque : Nécessite la bibliothèque Docker.
docker_manage_engine_networks true Active la gestion des réseaux de conteneurs Docker. Remarque : Nécessite la bibliothèque Docker.
docker_manage_images true Gère le cycle de vie des images de conteneurs. Remarque : Nécessite la bibliothèque Docker.
docker_manage_containers true Active la gestion de l'exécution des conteneurs Docker. Remarque : Nécessite la bibliothèque Docker.

Bibliothèque Python Docker

Gère l'installation de la bibliothèque Python Docker. Si une version est fournie qui est 2.0.0 ou supérieure, l'ancienne bibliothèque docker-py sera supprimée et la nouvelle bibliothèque docker sera installée à la place.

Variable Par défaut Options Description
docker_py_install pip pip ou pkg Type d'installation. Soit à partir de pip ou d'un paquet.
docker_py_pip_extra_args - - Arguments supplémentaires à passer à pip lors de l'exécution. Ex. : -i <miroir pypi local>
docker_py_pip_upgrade true true ou false Permet à pip d'être mis à jour pendant le processus d'installation.
docker_py_version - - La version de la bibliothèque Docker à installer. Par défaut, c'est la dernière.

Dépôt du moteur Docker

Contrôle la configuration du dépôt du moteur Docker.

Nom de la variable Par défaut Options Description
docker_engine_architecture amd64 amd64 ou armhf Spécifie l'architecture prévue. REMARQUE : armhf est UNIQUEMENT pris en charge sur les distributions basées sur Ubuntu et Debian.
docker_engine_channel stable stable ou edge Spécifie s'il faut utiliser le canal de distribution stable ou edge. Pour plus d'informations, consultez la Documentation d'installation de Docker
docker_engine_edition ce ce ou ee Utilisez l'édition communautaire (CE) ou l'édition entreprise (EE). REMARQUE : Le dépôt de l'édition entreprise NE PEUT PAS être géré par le rôle.
docker_engine_repo_gpg_key_server sks-keyservers.net - Le serveur clé à utiliser pour la validation des clés gpg du dépôt.
docker_engine_repo_ce_deb_gpg_key 0x8D81803C0EBFCD88 - La clé gpg utilisée pour le dépôt CE basé sur deb.
docker_engine_repo_ce_rpm_gpg_key 0xc52feb6b621e9f35 - La clé gpg utilisée pour le dépôt CE basé sur rpm.

Configuration de stockage du moteur Docker

Gère le pilote de stockage du moteur Docker et, dans certaines circonstances, le stockage sous-jacent. Comparer les différentes options de stockage est hors du scope de ce document ; cependant, de plus amples informations peuvent être trouvées ici : https://docs.docker.com/engine/userguide/storagedriver/selectadriver/.

Remarque : Pour tous les pilotes de stockage, les storage_opts doivent être fournis sous forme de tableau d'éléments. Pour plus d'informations sur les options de stockage disponibles et spécifiques à chaque pilote, veuillez consulter la documentation ici : https://docs.docker.com/v1.10/engine/reference/commandline/daemon/

Matrice de support de stockage :

aufs btrfs devicemapper (lvm-direct) overlay overlay2
CentOS 7.3 - x x x -
Debian 8 (Jessie) x x - - -
RHEL 7.3 - x x x -
Ubuntu 14.04 (Trusty) x x - - -
Ubuntu 16.04 (Xenial) x x - x x
Nom de la variable Par défaut Options Description
docker_engine_storage_driver - aufs, btrfs, devicemapper, et overlay Le pilote de stockage à utiliser avec le moteur Docker
docker_engine_storage_config - - Un hachage contenant les informations pour le conducteur fourni par docker_engine_storage_driver

aufs

Nom de la variable Par défaut Description
docker_engine_storage_driver aufs -
graph /var/lib/docker Le répertoire racine du runtime Docker
storage_opts - Options de stockage facultatives à passer au démon Docker

btrfs

Nom de la variable Par défaut Description
docker_engine_storage_driver btrfs -
device - REQUISE Le périphérique ou la partition (par ex. /dev/sdb) destiné à être utilisé et géré par Docker.
graph /var/lib/docker Le répertoire racine du runtime Docker
mkfs_opts - Paramètres supplémentaires à passer à mkfs.btrfs lors de la création du volume.
mount_opts defaults Paramètres de montage à utiliser pour le volume Docker btrfs.
storage_opts - Options de stockage facultatives à passer au démon Docker

devicemapper (lvm-direct)

REMARQUE : Toutes les erreurs ne sont pas capturées correctement lors de la création du thinpool. Il existe une tâche de vérification qui interrompt l'exécution à la fin de la configuration lvm si elle est détectée comme n'étant pas correctement configurée. Pour que le rôle soit réexécuté, le groupe de volumes lvm doit être supprimé manuellement (vgremove <vgname>). Ce comportement est intentionnel pour éviter toute perte de données accidentelle.

Nom de la variable Par défaut Description
docker_engine_storage_driver devicemapper -
device - REQUISE Le périphérique ou la partition (par ex. /dev/sdb) destinée à être utilisée et gérée par Docker.
vg_name docker-vg Le nom du groupe de volumes Docker.
vg_opts - Paramètres facultatifs à utiliser lors de la création du groupe de volumes.
lv_name thinpool Le nom du volume logique de thinpool.
lv_data_opts --wipesignatures y Paramètres à passer lors de la création du volume logique de données.
lv_metadata_opts --wipesignatures y Paramètres à passer lors de la création du volume logique de métadonnées.
thinpool_autoextend_threshold 80 La valeur percentage qui définit quand le volume logique de thinpool doit être étendu.
thinpool_autoextend_percent 20 La valeur en pourcentage (par rapport à sa taille actuelle) de combien d'espace supplémentaire devrait être ajouté au volume logique de thinpool depuis le groupe de volumes.
data_share 95 La valeur en pourcentage de l'espace du groupe de volumes pour être attribué au volume logique de données.
metadata_share 1 La valeur en pourcentage de l'espace du groupe de volumes pour être attribué au volume logique de métadonnées.
storage_opts [ 'dm.use_deferred_removal=true'] Options de stockage facultatives à passer au démon Docker

overlay

Nom de la variable Par défaut Description
docker_engine_storage_driver overlay -
graph /var/lib/docker Le répertoire racine du runtime Docker
storage_opts - Options de stockage facultatives à passer au démon Docker

overlay2

Nom de la variable Par défaut Description
docker_engine_storage_driver overlay2 -
graph /var/lib/docker Le répertoire racine du runtime Docker
storage_opts - Options de stockage facultatives à passer au démon Docker

Moteur Docker

Ces paramètres contrôlent le moteur Docker et le démon Docker.

Remarque : Si docker_manage_engine_storage est activé, storage-opt ne doit pas être fourni dans le hachage docker_engine_opts, et doit plutôt être contrôlé par docker_engine_storage_config.storage_opts.

Nom de la variable Par défaut Description
docker_engine_version - La version du moteur Docker à installer. Si aucun n'est fourni, la dernière version sera installée.
docker_engine_env_vars - Un hachage de paires clé-valeur à passer au moteur Docker en tant que variables d'environnement.
docker_engine_opts - Un hachage de paires clé-[tableau de valeur] qui seront utilisées comme options du moteur Docker. ex : dns: [ '8.8.8.8', '8.8.4.4']

Utilisateurs et groupes du moteur Docker

Gère l'accès au groupe docker sur un hôte.

Nom de la variable Par défaut Description
docker_engine_users - Un tableau de noms d'utilisateur à ajouter au groupe docker. Ces utilisateurs pourront exécuter Docker sans droits sudo.

Identifiants de registre du moteur Docker

Gère l'authentification auprès des registres Docker. La configuration est fournie via un tableau de hachages, chaque hachage contenant des paires clé/valeur des options disponibles pour le module Docker Login. Pour une liste complète des options et des valeurs par défaut, veuillez consulter la documentation Ansible sur le module docker_login.

Nom de la variable Description
docker_registry_credentials Tableau de hachages contenant la configuration du registre Docker.

Réseaux de conteneurs

Gère la création et la suppression des réseaux Docker. Les réseaux sont gérés via un tableau de hachages, chacun contenant une configuration réseau fournie par les options disponibles pour le module Docker Network. Pour une liste complète des options et des valeurs par défaut, veuillez consulter la documentation Ansible sur le module docker_network.

Nom de la variable Description
docker_networks Tableau de hachages contenant la configuration du réseau Docker.

Images de conteneurs

Gère tous les aspects du cycle de vie d'une image de conteneur. Les images sont gérées par un tableau de hachages contenant la configuration de l'image de conteneur. Pour une référence des options disponibles, veuillez consulter la documentation Ansible concernant le module docker_image.

Nom de la variable Description
docker_images Tableau de hachages contenant la configuration des images Docker.

Exécution de conteneurs

Gère l'exécution des conteneurs à l'exécution. Les conteneurs sont gérés par un tableau de hachages contenant la configuration du conteneur. Pour une référence des options disponibles, veuillez consulter la documentation Ansible concernant le module docker_container.

Nom de la variable Description
docker_containers Tableau de hachages contenant la configuration du conteneur Docker.

Exemple de Playbook

Une variété d'exemples peut être trouvée dans le répertoire des tests.

---
- name: docker
  hosts: all
  connection: local
  gather_facts: True
  tags:
   - 'docker'
  vars:
    docker_manage_py: true
    docker_manage_engine_repo: true
    docker_manage_engine_storage: true
    docker_manage_engine_users: true
    docker_manage_registry_credentials: true
    docker_manage_images: true
    docker_manage_containers: true
    docker_engine_version: '1.12.1'
    docker_engine_storage_driver: devicemapper
    docker_engine_storage_config:
      device: /dev/sdb
    docker_engine_env_vars:
      DOCKER_HOST: /var/run/docker.sock
      TLS_VERIFY: TRUE
    docker_engine_opts:
      dns:
        - '8.8.8.8'
        - '8.8.4.4'
    docker_engine_users:
      - vagrant
    docker_registry_credentials:
      - username: test
        password: testpass
        registry: registry.example.com
    docker_images:
      - name: nginx
        tag: '1.10.1-alpine'
    docker_containers:
      - name: nginx
        image: 'nginx:1.10.1-alpine'
    docker_networks:
      - name: testnet
        driver_options:
          com.docker.network.bridge.name: testnet1
        ipam_options:
          subnet: '10.255.13.1/24'
          gateway: '10.255.13.1'

Tests et contribution

Veuillez consulter le document CONTRIBUTING.md dans le dépôt.

Licence

MIT

Informations sur l'auteur

Créé par Bob Killen, maintenu par le Département de Services de Recherche Avancée et Techniques de l'Université du Michigan.

À propos du projet

Installs and Manages the Docker Engine. Has support for managing Commercial vs Open Source, Storage, Credentialing and more.

Installer
ansible-galaxy install arc-ts.docker
Licence
mit
Téléchargements
72
Propriétaire