arc-ts.docker
Ansibleロール: Docker
このロールは、Dockerエンジンのインストールと設定を管理し、資格情報管理やカスタムストレージのプロビジョニングをサポートします。CentOS 7.3、Debian Jessie、Ubuntu Trusty、Ubuntu Xenialでテストされています。RHEL 7.xはあまりサポートされていません。
目次
要件
このロールは、完全な機能のためにAnsible 2.2以上に依存しています。
注意: このロールのバージョン 2.x.x
以上では、YY.MM
スタイルのリリーススキーマ(例: docker-ce-17.03.1
)のみをサポートします。古いリリース(例: docker-engine-1.13.1
)には、このロールの 1.x.x
バージョンを使用してください。
注意: Docker Inc.は、もはやEnterprise Edition用の公にアクセス可能なリポジトリを使用していません。このロールのバージョン 2.0.0
以降では、エンタープライズリポジトリの管理のサポートが削除されました。ただし、Enterprise Editionの管理とインストールは引き続き可能です。
依存関係
Pythonライブラリ docker
または docker-py
は、Dockerエンジンのインストール以外のロールのすべてのコンポーネントに必要です。ただし、ロールが正しいバージョンをインストールするように構成されています。
注意: 2017年4月13日現在、Ansibleは2.0.2以上のPythonライブラリをサポートしていません。サポートはAnsible 2.4リリースに予定されています。詳細については、GitHubの問題を参照してください: https://github.com/ansible/ansible/issues/22993
ロール変数
実行制御
Dockerロールの特定のコンポーネントを有効または無効にします。
変数名 | デフォルト | 説明 |
---|---|---|
external_dependency_delay |
20 |
外部依存性の再試行間の秒数。 (リポジトリ、キーマネージャなど) |
external_dependency_retries |
6 |
外部依存性のアクセスを試みる再試行回数。 |
docker_manage_py |
true |
Pythonのdockerライブラリをインストールします。 注意: コンテナ、資格情報、イメージ、ネットワーク管理に必要です。 |
docker_manage_engine_repo |
true |
Dockerリポジトリを管理します。オープンソースと商業サポート両方のリポジトリをサポートします。 |
docker_manage_engine_storage |
false |
Trueの場合、Dockerエンジン用のストレージドライバがロールによって管理されます。ストレージドライバやストレージオプションを手動で提供する必要がありません。 |
docker_manage_engine_users |
true |
Dockerとやり取りする権限を付与されたdockerグループを作成し管理します。 |
docker_manage_registry_credentials |
true |
提供されたレジストリのリストの資格情報を管理します。 注意: dockerライブラリが必要です。 |
docker_manage_engine_networks |
true |
Dockerコンテナネットワークの管理を有効にします。 注意: dockerライブラリが必要です。 |
docker_manage_images |
true |
コンテナイメージのライフサイクルを管理します。 注意: dockerライブラリが必要です。 |
docker_manage_containers |
true |
Dockerコンテナ実行の管理を有効にします。 注意: dockerライブラリが必要です。 |
Docker Pythonライブラリ
PythonのDockerライブラリのインストールを管理します。 2.0.0
以上のバージョンが提供されると、古い docker-py
パッケージは削除され、新しい docker
パッケージがその代わりにインストールされます。
変数名 | デフォルト | オプション | 説明 |
---|---|---|---|
docker_py_install |
pip |
pip または pkg |
インストールの種類。pipかパッケージのいずれか。 |
docker_py_pip_extra_args |
- | - | pip実行中に追加する引数。例: -i <ローカルpypiミラー> |
docker_py_pip_upgrade |
true |
true または false |
インストールプロセス中にpipをアップグレードすることを許可します。 |
docker_py_version |
- | - | インストールするdockerライブラリのバージョン。デフォルトは最新。 |
Dockerエンジンリポジトリ
Dockerエンジンのリポジトリ設定を制御します。
変数名 | デフォルト | オプション | 説明 |
---|---|---|---|
docker_engine_architecture |
amd64 |
amd64 または armhf |
使用する予定のアーキテクチャを指定します。 注意: armhf はUbuntuおよびDebianベースのディストリビューションでのみサポートされています。 |
docker_engine_channel |
stable |
stable または edge |
stable またはedge リリースチャネルのいずれかを使用するかを指定します。詳細は、Dockerインストールドキュメントを参照してください。 |
docker_engine_edition |
ce |
ce または ee |
コミュニティエディション(CE)またはエンタープライズエディション(EE)を使用します。 注意: エンタープライズエディションのリポジトリはロールによって管理できません。 |
docker_engine_repo_gpg_key_server |
sks-keyservers.net |
- | リポジトリのGPGキーの検証に使用するキーロケーションです。 |
docker_engine_repo_ce_deb_gpg_key |
0x8D81803C0EBFCD88 |
- | CE debベースのリポジトリ用のGPGキーです。 |
docker_engine_repo_ce_rpm_gpg_key |
0xc52feb6b621e9f35 |
- | CE rpmベースのリポジトリ用のGPGキーです。 |
Dockerエンジンストレージ設定
Dockerエンジンのストレージドライバを管理し、特定の状況下でその下位のストレージも管理します。各ストレージドライバの詳細オプションについては、こちらを参照してください: https://docs.docker.com/engine/userguide/storagedriver/selectadriver/.
注意: すべてのストレージドライバでは、storage_opts
はアイテムの配列の形式で渡す必要があります。各ドライバの具体的なストレージオプションの詳細については、こちらを参照してください: https://docs.docker.com/v1.10/engine/reference/commandline/daemon/
ストレージサポートマトリックス:
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 |
変数名 | デフォルト | オプション | 説明 |
---|---|---|---|
docker_engine_storage_driver |
- | aufs , btrfs , devicemapper , overlay |
Dockerエンジンで使用するストレージドライバ |
docker_engine_storage_config |
- | - | docker_engine_storage_driver で供給されたドライバに関する情報を含むハッシュ |
aufs
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_storage_driver |
aufs |
- |
graph |
/var/lib/docker |
Dockerランタイムのルートディレクトリ |
storage_opts |
- | Dockerデーモンに渡すオプションストレージオプション |
btrfs
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_storage_driver |
btrfs |
- |
device |
- | 必須 Dockerが使用および管理するデバイスまたはパーティション (例: /dev/sdb ) |
graph |
/var/lib/docker |
Dockerランタイムのルートディレクトリ |
mkfs_opts |
- | ボリューム作成中に mkfs.btrfs に渡す追加パラメータ。 |
mount_opts |
defaults |
btrfsボリュームに使用するマウントパラメータ。 |
storage_opts |
- | Dockerデーモンに渡すオプションストレージオプション |
devicemapper (lvm-direct)
注意: 薄プール作成中にすべてのエラーが正しくキャッチされるわけではありません。lvm設定が正しくないと検出された場合、実行を短絡させる検証タスクがあります。ロールを再実行するには、lvmボリュームグループを手動で削除する必要があります (vgremove <vgname>
)。これは意図的な動作であり、偶発的なデータ損失を防ぐためのものです。
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_storage_driver |
devicemapper |
- |
device |
- | 必須 Dockerが使用および管理するデバイスまたはパーティション (例: /dev/sdb ) |
vg_name |
docker-vg |
Dockerボリュームグループの名前。 |
vg_opts |
- | ボリュームグループ作成中に使用するオプションパラメータ。 |
lv_name |
thinpool |
論理ボリューム薄プール名。 |
lv_data_opts |
--wipesignatures y |
データ論理ボリュームの作成中に渡すパラメータ。 |
lv_metadata_opts |
--wipesignatures y |
メタデータ論理ボリュームの作成中に渡すパラメータ。 |
thinpool_autoextend_threshold |
80 |
薄プール論理ボリュームが拡張されるべき時期を定義する満杯のパーセンテージ。 |
thinpool_autoextend_percent |
20 |
薄プール論理ボリュームがボリュームグループからどれだけ追加スペースを取得するかのパーセント値 (現在のサイズに関連) |
data_share |
95 |
データ論理ボリュームに割り当てられるボリュームグループのスペースのパーセンテージ。 |
metadata_share |
1 |
メタデータ論理ボリュームに割り当てられるボリュームグループのスペースのパーセンテージ。 |
storage_opts |
[ 'dm.use_deferred_removal=true'] |
Dockerデーモンに渡すオプションストレージオプション |
overlay
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_storage_driver |
overlay |
- |
graph |
/var/lib/docker |
Dockerランタイムのルートディレクトリ |
storage_opts |
- | Dockerデーモンに渡すオプションストレージオプション |
overlay2
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_storage_driver |
overlay2 |
- |
graph |
/var/lib/docker |
Dockerランタイムのルートディレクトリ |
storage_opts |
- | Dockerデーモンに渡すオプションストレージオプション |
Dockerエンジン
これらのパラメータはDockerエンジンおよびDockerエンジンダーモンを制御します。
注意: docker_manage_engine_storage
が有効な場合、storage-opt
は docker_engine_opts
ハッシュに手動で提供するべきではなく、docker_engine_storage_config.storage_opts
を通じて制御されるべきです。
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_version |
- | インストールするDockerエンジンのバージョン。指定がない場合は最新がインストールされます。 |
docker_engine_env_vars |
- | Dockerエンジンに渡す環境変数のキーと値のペアのハッシュ。 |
docker_engine_opts |
- | Dockerエンジンオプションとして使用されるキーと値の配列のハッシュ。例: dns: [ '8.8.8.8', '8.8.4.4'] |
Dockerエンジンユーザーとグループ
ホスト上のdockerグループへのアクセスを管理します。
変数名 | デフォルト | 説明 |
---|---|---|
docker_engine_users |
- | dockerグループに追加されるユーザー名の配列。これらのユーザーはsudo権限なしにdockerを実行できます。 |
Dockerエンジンレジストリ資格情報
Dockerレジストリへの認証を管理します。構成は、Dockerログインモジュールで使用可能なオプションのキー/値ペアを含むハッシュの配列を介して提供されます。オプションとデフォルトの完全なリストについては、docker_loginモジュールに関するAnsibleのドキュメントを参照してください。
変数名 | 説明 |
---|---|
docker_registry_credentials |
Dockerレジストリ構成を含むハッシュの配列。 |
コンテナネットワーク
Dockerネットワークの作成と削除を管理します。ネットワークは、Dockerネットワークモジュールで提供されるオプションによるネットワーク設定を含むハッシュの配列を介して管理されます。オプションとデフォルトの完全なリストについては、docker_networkモジュールに関するAnsibleのドキュメントを参照してください。
変数名 | 説明 |
---|---|
docker_networks |
Dockerネットワーク構成を含むハッシュの配列。 |
コンテナイメージ
コンテナイメージのライフサイクルのすべての側面を管理します。イメージはコンテナイメージ設定を含むハッシュの配列によって管理されます。使用可能なオプションの参照については、docker_imageモジュールに関するAnsibleのドキュメントを参照してください。
変数名 | 説明 |
---|---|
docker_images |
Dockerイメージ構成を含むハッシュの配列。 |
コンテナ実行
コンテナランタイム実行を管理します。コンテナはコンテナ設定を含むハッシュの配列によって管理されます。使用可能なオプションの参照については、docker_containerモジュールに関するAnsibleのドキュメントを参照してください。
変数名 | 説明 |
---|---|
docker_containers |
Dockerコンテナ構成を含むハッシュの配列。 |
例のプレイブック
テストディレクトリにはさまざまな例が見つかります。
---
- 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'
テストと貢献
リポジトリ内のCONTRIBUTING.mdドキュメントを参照してください。
ライセンス
MIT
著者情報
作成者: Bob Killen、大学の高度な研究計算と技術サービス部門にて保守中。
Installs and Manages the Docker Engine. Has support for managing Commercial vs Open Source, Storage, Credentialing and more.
ansible-galaxy install arc-ts.docker