geerlingguy.docker

Ansibleロール: Docker

CI

これは、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_editionce(コミュニティエディション)またはee(エンタープライズエディション)である必要があります。 特定のDockerのバージョンをインストールするには、ディストリビューション固有の形式を使用します: Red Hat/CentOS: docker-{{ docker_edition }}-<VERSION>(すべてのパッケージに追加する必要があります); Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION>(すべてのパッケージに追加する必要があります)。

docker_packages_statepresentabsent、または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_managefalseに設定する必要があります。

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
ライセンス
mit
ダウンロード
22.2M
所有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns