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-optdocker_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
ライセンス
mit
ダウンロード
72
所有者