geerlingguy.docker
Ansibleロール: Docker
これは、LinuxにDockerをインストールするためのAnsibleロールです。
要件
特になし。
ロールの変数
利用可能な変数は以下にリストされています。デフォルト値も含まれています(defaults/main.yml
を参照)。
# エディションは「ce」(コミュニティエディション)または「ee」(エンタープライズエディション)のいずれかです。
docker_edition: 'ce'
docker_packages:
- "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present
docker_edition
はce
(コミュニティエディション)またはee
(エンタープライズエディション)である必要があります。
特定のDockerのバージョンをインストールするには、ディストリビューション固有の形式を使用します:
Red Hat/CentOS: docker-{{ docker_edition }}-<VERSION>
(すべてのパッケージに追加する必要があります);
Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION>
(すべてのパッケージに追加する必要があります)。
docker_packages_state
をpresent
、absent
、またはlatest
に設定することで、パッケージのインストール、アンインストール、または最新バージョンへの更新を制御できます。Dockerパッケージが更新されると、Dockerデーモンは自動的に再起動されます。これは、これまでに通知されたすべてのハンドラーをフラッシュする副作用です。
docker_obsolete_packages:
- docker
- docker.io
- docker-engine
- podman-docker
- containerd
- runc
このロールを実行する前にアンインストールされるパッケージのリストです。古いパッケージの最新リストは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: true
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Docker Composeプラグインのインストールオプションです。これにより、docker-composeはスタンドアロンのバイナリではなく、Dockerプラグインとしてインストールされます。
docker_install_compose: false
docker_compose_version: "2.11.1"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
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リリースを使用したい場合は、チャネルをnightly
に切り替えることができます。
ファイアウォールの背後にいる場合や信頼できるミラーを提供する場合は、docker_apt_gpg_key
を別のURLに変更できます。通常、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専用)。NightlyまたはTestリポジトリを有効にするには、それぞれの変数を1
に設定します。
ファイアウォールの背後にいる場合や信頼できるミラーを提供する場合は、docker_yum_gpg_key
を別のURLに変更できます。通常、docker_yum_repository
も一緒に変更することになります。
docker_users:
- user1
- user2
Dockerをサーバーで使用できるようにするためにdocker
グループに追加されるシステムユーザーのリストです。
docker_daemon_options:
storage-driver: "devicemapper"
log-opts:
max-size: "100m"
/etc/docker/daemon.json
を表す辞書を通じてカスタムdockerd
オプションを設定できます。
Ansible(およびdocker
Pythonライブラリ)との併用
このロールを使用する多くのユーザーは、DockerがインストールされたサーバーでDockerイメージをビルドし、Dockerコンテナを管理するためにAnsibleを使用したいと考えています。この場合、geerlingguy.pip
ロールを使用してdocker
Pythonライブラリを簡単に追加できます:
- hosts: all
vars:
pip_install_packages:
- name: docker
roles:
- geerlingguy.pip
- geerlingguy.docker
依存関係
特になし。
例プレイブック
- hosts: all
roles:
- geerlingguy.docker
ライセンス
MIT / BSD
スポンサー
- We Manage: スタートアップや成長過程にある企業が持続可能な方法でインフラをスケールアップするのを支援しています。
上記のスポンサーは、Jeff GeerlingをGitHub Sponsorsでサポートしています。Jeffの作業をスポンサーすることもでき、これらのAnsibleのオープンソースプロジェクトの改善を続ける手助けをお願いします!
作者情報
このロールは、Jeff Geerlingによって2017年に作成されました。彼はAnsible for DevOpsの著者です。
ansible-galaxy install geerlingguy.docker