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.
Sommaire
- Exigences
- Dépendances
- Variables de rôle
- Exemple de Playbook
- Tests et contribution
- Licence
- Informations sur l'auteur
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.
Installs and Manages the Docker Engine. Has support for managing Commercial vs Open Source, Storage, Credentialing and more.
ansible-galaxy install arc-ts.docker