bsmeding.docker
Ansible 角色:Docker
一个用于在 Linux 上安装 Docker 的 Ansible 角色。
请仅在 CI 测试通过时安装版本!
该角色在 Ubuntu、Debian 和 Rocky(类似 RedHat)Linux 发行版上进行了测试。
下载:
原始来自 geerlingguy.docker 附加内容:
- 从 RedHat Linux 中移除 PodMan
- 添加用户和组 docker:docker
- 将当前 Ansible 提升用户添加到 docker 组
- 将
docker_uid和docker_gui设置为 docker 用户和组的 ID。这可用于我其他的 Ansible 角色,它们都使用 Docker。这将创建一个无缝的安装体验。
需求
无。
角色变量
可用的变量如下所示,以及默认值(见 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_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
Docker 主要仓库 URL,在 Debian 和 RHEL 系统中通用。
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。)您可以通过将各自的变量设置为 1 来启用 Nightly 或测试仓库。
如果您在防火墙后面,可以更改 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 选项,该字典表示 JSON 文件 /etc/docker/daemon.json。
作者信息
此角色由 Jeff Geerling 在 2017 年创建,他是 Ansible for DevOps 的作者。
由我(Bart Smeding)进行了一些附加设置的更改,以便集成到我其他的 Ansible 容器应用程序角色中。
信息\
如果您收到错误信息 "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"} ,请升级 Ansible 集合:
(或将请求的 Python 库版本设置为 < 2.32.0 )
- name: community.general
- name: community.docker
Docker for Linux, Forked from geerlingguy.docker.
ansible-galaxy install bsmeding.docker