gbolo.docker
Docker - Ansible 角色
该角色将完全配置和安装 Docker 在以下平台上:
- RHEL/CentOS 7
- Debian/Ubuntu
此角色仅支持 Docker 版本 1.11 及以上。
要求
- 操作系统:CentOS 7 或 Ubuntu
- 连接到 docker-ce 软件包仓库 (https://download.docker.com)
角色变量
以下变量可以用来定制 Docker 安装:
# 操作系统相关 -------------------------------------------------------------------
## 使用官方 Docker 仓库
docker_repo_enabled: true
## 选择 Docker 仓库频道启用状态
docker_repo_channel_stable_enabled: true
docker_repo_channel_edge_enabled: false
docker_repo_channel_test_enabled: false
## 要安装的 Docker 软件包名称
docker_pkg_name: "docker-ce"
## 软件包状态(present, latest, exc.)
docker_pkg_state: present
## Docker 服务名称
docker_service_name: "docker"
## Docker 守护进程是否在启动时启动?
docker_service_enable: true
## Docker 套接字文件的组名称
docker_group: "docker"
## 我们是否需要为 ansible docker 模块安装 python-docker-py?
docker_install_py_module: false
# 代理相关 ----------------------------------------------------------------
## Docker 守护进程是否使用代理进行外部连接?
docker_proxy_enabled: false
## 我们应该设置的环境变量列表(注释掉不需要的部分)
docker_proxy_env:
- "HTTP_PROXY=http://proxy.example.com:80/"
- "HTTP_PROXY=https://proxy.example.com:443/"
- "NO_PROXY=localhost,127.0.0.1,internalhub.example.com"
# Docker 客户端配置 --------------------------------------------------
## 是否启用 Docker 注册表的身份验证
docker_client_config_enabled: false
## 客户端配置的存放位置
docker_client_config_location: "/root/.docker/config.json"
# 用于身份验证(docker login)可以使用类似的格式:
#docker_client_config:
# auths:
# "https://test.tld:1234":
# auth: "SOME_STRING"
# email: "SOME_EMAIL"
# 默认的 dockerd 配置选项 ----------------------------------------
## https://docs.docker.com/engine/reference/commandline/dockerd/#/linux-configuration-file
docker_config_data_root: "/var/lib/docker"
docker_config_log_driver: ""
docker_config_log_opts: {}
docker_config_max_concurrent_downloads: 3
docker_config_max_concurrent_uploads: 5
docker_config_debug: false
docker_config_log_level: ""
docker_config_bridge: ~
docker_config_bip: "172.16.0.1/24"
docker_config_fixed_cidr: "172.16.0.0/24"
docker_config_fixed_cidr_v6: ""
docker_config_default_gateway: ""
docker_config_default_gateway_v6: ""
docker_config_selinux_enabled: false
docker_config_ip: "0.0.0.0"
docker_config_group: "{{ docker_group }}"
docker_config_insecure_registries: []
# 可以将额外的自定义 Docker 设置添加到此字典中:
docker_config_custom: {}
示例剧本
在本地 CentOS 服务器上安装最新的 Docker 稳定 版本
- hosts: localhost
roles:
- { role: gbolo.docker, docker_pkg_state: latest }
在本地 CentOS 服务器上安装最新的 Docker 边缘 版本
- hosts: localhost
roles:
- { role: gbolo.docker, docker_pkg_state: latest, docker_repo_channel_edge_enabled: true }
在本地 CentOS 服务器上安装旧版本的 Docker 稳定 版本
- hosts: localhost
roles:
- { role: gbolo.docker, docker_pkg_name: docker-ce-18.03.1.ce-1.el7.centos }
应用各种变量的高级剧本
- hosts: localhost
vars:
# 将 Docker 容器/镜像存储到 /opt/docker
docker_config_data_root: /opt/docker
# 更改默认 Docker 桥接子网
docker_config_bip: 172.16.77.77/24
# 将默认日志驱动设置为 journald
docker_config_log_driver: journald
# 使用 docker_config_custom 定义未列出的附加设置
docker_config_custom:
# 启用实验模式
experimental: true
# 通过套接字文件和 TCP 暴露 Docker API
hosts:
- unix:///var/run/docker.sock
- tcp://0.0.0.0:2376
# 设置默认搜索域
dns-search:
- lab1.linuxctl.com
- lab2.linuxctl.com
roles:
- role: gbolo.docker
作者和许可证
docker
角色由以下人员编写:
- George Bolo | linuxctl.com
许可证:MIT
免费软件,太棒了!