sorrowless.docker

Ansibleロール: Docker

CI

このAnsibleロールは、LinuxにDockerをインストールします。

要件

特にありません。

ロール変数

使用できる変数は以下に示されており、デフォルト値も示されています(defaults/main.ymlを参照)。

# エディションは「ce」(コミュニティエディション)または「ee」(エンタープライズエディション)のいずれかです。
# docker_version変数を使ってDockerのバージョンを指定できます。例: '=5:23.0.2-1~ubuntu.20.04~focal'
docker_edition: 'ce'
docker_version: ''
docker_packages:
  - "docker-{{ docker_edition }}{{ docker_version }}"
  - "docker-{{ docker_edition }}-cli{{ docker_version}}"
  - "docker-{{ docker_edition }}-rootless-extras{{ docker_version}}"
  - "containerd.io"
docker_packages_state: present

docker_editionce(コミュニティエディション)かee(エンタープライズエディション)のいずれかである必要があります。 特定のDockerのバージョンをインストールしたい場合は、変数docker_versionを指定できます: docker_version: '=5:23.0.2-1ubuntu.20.04focal'

パッケージをインストール、アンインストール、または最新バージョンにするかは、docker_packages_stateをそれぞれpresentabsentlatestに設定することで制御可能です。Dockerパッケージが更新されると、Dockerデーモンは自動的に再起動します。これは、これまでのすべてのハンドラ(通知されたハンドラを実行すること)をフラッシュする副作用です。

docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted

dockerサービスの状態を制御するための変数で、ブート時に開始するかどうかを指定します。systemdやsysvinitが無いDockerコンテナ内にDockerをインストールする場合は、docker_service_managefalseに設定してください。

docker_install_compose_plugin: false
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present

Docker Composeプラグインのインストールオプションです。これは、以下のものとは異なり、docker-composeがDockerプラグインとしてインストールされ(docker composeと一緒に使用される)、スタンドアロンバイナリとしてではありません。

docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_path: /usr/local/bin/docker-compose

Docker Composeのインストールオプションです。

docker_add_repo: true

このロールが公式Dockerリポジトリを追加するかどうかを制御します。システムのデフォルトDockerパッケージを使用したい場合や、パッケージリポジトリを自分で管理したい場合は、falseに設定してください。

docker_repo_url: https://download.docker.com/linux

DebianとRHELシステム共通の主要DockerリポジトリのURLです。

docker_apt_release_channel: stable
docker_apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] {{ docker_repo_url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_ignore_key_error: true
docker_apt_gpg_key: "{{ docker_repo_url }}/{{ ansible_distribution | lower }}/gpg"
docker_apt_filename: "docker"

(Debian/Ubuntu専用)。夜間リリースを使用したい場合は、チャンネルをnightlyに変更できます。

ファイアウォールの裏にいる場合や、信頼できるミラーを提供している場合は、docker_apt_gpg_keyを変更できます。 通常は、docker_apt_repositoryも変更することが多いです。docker_apt_filenameは、sources.list.dに作成されるソースリストファイルの名前を制御します。このロールの古いバージョン(<7.0.0)からアップグレードする場合は、既存ファイルの名前(例:Debianではdownload_docker_com_linux_debian)に変更して、リストの競合を避ける必要があります。

docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo"
docker_yum_repo_enable_nightly: '0'
docker_yum_repo_enable_test: '0'
docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg"

(RedHat/CentOS専用)。それぞれの変数を1に設定することで、ナイトリーまたはテストリポジトリを有効にできます。

ファイアウォールの裏にいる場合や、信頼できるミラーを提供している場合は、docker_yum_gpg_keyを変更できます。 通常は、docker_yum_repositoryも変更することが多いです。

docker_users:
  - user1
  - user2

dockerグループに追加されるシステムユーザーのリストです(サーバー上でDockerを使用できるようにするため)。

docker_daemon_options:
  storage-driver: "devicemapper"
  log-opts:
    max-size: "100m"

カスタムdockerdオプションは、この辞書を通して設定できます。これは/etc/docker/daemon.jsonを表します。

レジストリにログインするには、次の変数を定義する必要があります:

  • docker_registry_url
  • docker_registry_user
  • docker_registry_password

Ansible(およびdocker Pythonライブラリ)との使用

このロールの多くのユーザーは、Ansibleを使用してDockerイメージをビルドしたり、Dockerコンテナを管理したりすることも望んでいます。場合によっては、geerlingguy.pipロールを使ってdocker Pythonライブラリを簡単に追加できます:

- hosts: all

  vars:
    pip_install_packages:
      - name: docker

  roles:
    - geerlingguy.pip
    - geerlingguy.docker

スウォームを構成するには、すべてのノードにdocker_swarm_configure: trueを追加し、マネージャーにはdocker_swarm_manager: trueを追加してください。inventory_hostnameはホスト名(ansible_hostname)と等しくなければなりません。

依存関係

特にありません。

サンプルプレイブック

- hosts: all
  roles:
    - geerlingguy.docker

ライセンス

MIT / BSD

スポンサー

  • We Manage: スタートアップや成長企業のインフラを持続可能な方法でスケーリングする手助けをしています。

上記のスポンサーは、GitHub Sponsorsでジェフ・ギーリングを支援しています。あなたもジェフの活動を支援して、これらのAnsibleオープンソースプロジェクトの改善を続ける手助けをすることができます!

著者情報

このロールは2017年にJeff Geerlingによって作成されました。彼はAnsible for DevOpsの著者です。 Stan Bogatkinによって自身のニーズに合わせて調整されました。

インストール
ansible-galaxy install sorrowless.docker
ライセンス
mit
ダウンロード
4.6k
所有者
Barocco-style deployment engineer