honomoa.docker_deployment
Ansible 角色:docker_deployment
部署您的 Docker 镜像。
角色变量
registry_type: aws-ecr
注册类型。
可能的值:
- aws-ecr
- 自托管(如 nexus docker 注册表或 Docker 官方注册表)
- archive-tar(docker save tar 文件)
dockerhub(自托管),如果镜像是官方支持的,可以将 registry_url 设置为registry.hub.docker.com
,并将 team 设置为library
。
registry_region: us-west-1
AWS ECR 的区域,仅在 registry_type=aws-ecr 时需要。
aws_access_key_id: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}"
AWS IAM 的访问密钥 ID,请设置环境变量 AWS_ACCESS_KEY_ID
,仅在 registry_type=aws-ecr 时需要。
aws_secret_access_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}"
AWS IAM 的密钥访问密钥,请设置环境变量 AWS_SECRET_ACCESS_KEY
,仅在 registry_type=aws-ecr 时需要。
registry_username: "{{ lookup('env', 'REGISTRY_USERNAME') }}"
注册表的用户名,请设置环境变量 REGISTRY_USERNAME
,仅在 registry_type=self-hosted 时需要。
registry_password: "{{ lookup('env', 'REGISTRY_PASSWORD') }}"
注册表的密码,请设置环境变量 REGISTRY_PASSWORD
,仅在 registry_type=self-hosted 时需要。
archive_username: "{{ lookup('env', 'ARCHIVE_USERNAME') }}"
归档 URL 的用户名,请设置环境变量 ARCHIVE_USERNAME
,仅在 registry_type=archive-tar 时需要。
archive_password: "{{ lookup('env', 'ARCHIVE_PASSWORD') }}"
归档 URL 的密码,请设置环境变量 ARCHIVE_PASSWORD
,仅在 registry_type=archive-tar 时需要。
archive_url: "{{ lookip('env', 'ARCHIVE_URL') }}"
归档服务器的 URL,不包括归档 tar.gz 文件名,请设置环境变量 ARCHIVE_URL
,仅在 registry_type=archive-tar 时需要。
registry_scheme: https
注册表的协议类型。
可能的值:
- https(默认)
- http
registry_url: dockerhub.com
Docker 注册表 URL。
image_team: moa
镜像所属团队的名称。
image_project: caddy
镜像的项目名称。
image_tag: latest
要部署的镜像标签。
container_name: caddy-server-1
容器的名称。
container_ports: []
要暴露的端口。
container_restart_policy: always
容器的重启策略。
container_environment: {}
容器的环境,键值对的字典。
container_env_file: ''
目标上的文件路径,该文件包含环境变量 FOO=BAR。
container_volumes: []
容器的挂载卷。
container_extra_hosts:
添加主机名映射。使用与 Docker 客户端 --add-host 参数相同的值。
container_command: ''
要运行的命令。
container_privileged: no
为此容器提供扩展权限。
container_dns_servers: []
自定义 DNS 服务器的列表。
container_dns_search_domains: []
自定义 DNS 搜索域的列表。
container_network_mode: ''
将容器连接到网络。可选值为 "bridge"、"host"、"none" 或 "container:<name|id>"。
container_capabilities: []
要添加到容器的能力列表。
container_log_driver: json-file
容器可以具有与 Docker 守护进程不同的日志驱动程序。可选值为 "none"、"json-file"、"syslog"、"journald"、"gelf"、"fluentd"、"awslogs"、"splunk"。
container_log_options:
示例剧本
- hosts: server
vars:
registry_url: dockerhub.com
image_team: moa
image_project: caddy
image_tag: latest
container_name: caddy-server-01
container_ports:
- 80:80
- 443:443
container_restart_policy: always
container_environment:
HOST_ID: 100
container_env_file: xxx.env
container_volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- ${PWD}/data:/data
container_privileged: no
container_network_mode: 'bridge'
container_capabilities:
- NET_ADMIN
container_log_driver: json-file
container_log_options:
max-size: 10m
max-file: 3
roles:
- { role: honomoa.docker_deployment }
许可
CC BY-SA 3.0