bsmeding.docker

Ansibleロール: Docker

LinuxにDockerをインストールするAnsibleロールです。

CIがパスしているときにのみバージョンをインストールしてください!

テストステータス このロールは、Ubuntu、Debian、Rocky(RedHat系)Linuxディストリビューションでテストされています。

ダウンロード: Ansibleロール

元はgeerlingguy.dockerからのものです。 追加機能:

  • RedHat LinuxからPodManを削除
  • ユーザーとグループdocker:dockerを追加
  • 現在のAnsibleの実行ユーザーをグループdockerに追加
  • docker_uiddocker_guiをdockerのユーザーとグループのIDに設定。この情報は、私の他の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_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted

dockerサービスの状態を制御し、ブート時に開始するかどうかを設定するための変数です。システムdや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リリースを使用したい場合は、チャネルを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を使用できるように)。現在のAnsibleユーザーも追加されます。

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

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

著者情報

このロールは、Jeff Geerlingによって2017年に作成されました。彼はAnsible for DevOpsの著者です。

私(Bart Smeding)が、他のAnsibleコンテナアプリケーションロールに統合するために、いくつかの追加設定を加えて変更しました。

INFO\

"Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"というエラーが表示された場合は、Ansibleコレクションをアップグレードしてください: (またはrequests Pythonライブラリを< 2.32.0に設定)

  - name: community.general
  - name: community.docker
プロジェクトについて

Docker for Linux, Forked from geerlingguy.docker.

インストール
ansible-galaxy install bsmeding.docker
ライセンス
mit
ダウンロード
7.3k
所有者
Network Automation Consultant | NetDevOps | DevNetOps | AI in networking | Home Automation