sorrowless.docker
Ansibleロール: Docker
この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_edition
はce
(コミュニティエディション)かee
(エンタープライズエディション)のいずれかである必要があります。
特定のDockerのバージョンをインストールしたい場合は、変数docker_version
を指定できます:
docker_version: '=5:23.0.2-1ubuntu.20.04focal'
パッケージをインストール、アンインストール、または最新バージョンにするかは、docker_packages_state
をそれぞれpresent
、absent
、latest
に設定することで制御可能です。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_manage
をfalse
に設定してください。
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