bitintheskud.ansible-role-ecs-agent
Centos ECS Agent Ansible 角色
该角色允许在普通 CentOS 7 主机上配置 ECS 容器代理。
需求
- Ansible 2.2 及以上
- 在 CentOS 7.4.1708 上测试通过
角色变量
有关更多信息,请参阅:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
ecs_agent_loglevel
:ECS_LOGLEVEL
(默认值:info)ecs_agent_cluster_name
:ECS_CLUSTER
(默认值:default)ecs_agent_enable_iam_role
:ECS_ENABLE_TASK_IAM_ROLE
(默认值:true)ecs_agent_enable_task_iam_role_network_host
:ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST
(默认值:true)ecs_agent_reserved_ports
:ECS_RESERVED_PORTS
(默认值:"[22, 2375, 2376, 51678]")ecs_agent_container_stop_timeout
:ECS_CONTAINER_STOP_TIMEOUT
(默认值:30s)ecs_agent_auth_type
:ECS_ENGINE_AUTH_TYPE
(默认值:"")ecs_agent_auth_data
:ECS_ENGINE_AUTH_DATA
(默认值:"")ecs_agent_data_dir
:ECS_DATADIR
(默认值:"/data")ecs_agent_log_file
:ECS_LOGFILE
(默认值:"/log/ecs_agent.log")
依赖
需要安装并运行 Docker。
请参阅:
注意事项
该角色根据文档推荐设置 AWS ECS 代理,包括添加 iptables 规则。不过,请注意该角色不会为您保存 iptables 规则(通过 iptables-save
或其他方法)。如果您希望将 iptables 规则保存到磁盘,以便在重启后仍然存在,并且无需额外的 Ansible 运行,您需要在此角色之外处理该问题。
示例剧本
---
- name: AWS ECS 代理剧本
hosts: all
become: yes
vars:
- ecs_agent_cluster_name: MyClusterName
roles:
- ansible-role-ecs-agent
下一版本改进计划
- 添加 Travis 构建。
- 添加对日志驱动的支持。请参阅:https://github.com/open-guides/og-aws#ecs-tips
- 添加对清理选项的支持:
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 此变量指定在删除任何属于已停止任务的容器之前需要等待的时间。只要有一个容器引用它,图像清理过程就无法删除图像。在不再被任何容器(无论是停止还是运行)引用后,该图像才成为清理的候选者。默认情况下,此参数设置为 3 小时,但如果您的应用程序需要,可以将此时间缩短至 1 分钟。
ECS_DISABLE_IMAGE_CLEANUP 如果您将此变量设置为 true,则在您的容器实例上禁用自动图像清理,且不会自动删除图像。
ECS_IMAGE_CLEANUP_INTERVAL 此变量指定自动图像清理过程检查要删除图像的频率。默认值为每 30 分钟,但您可以将此时间缩短至每 10 分钟,以更频繁地删除图像。
ECS_IMAGE_MINIMUM_CLEANUP_AGE 此变量指定图像被拉取与可能成为删除候选者之间的最小时间。用于防止刚拉取的图像被清理。默认值为 1 小时。
ECS_NUM_IMAGES_DELETE_PER_CYCLE 此变量指定在单个清理周期中可以删除的图像数量。默认值为 5,最小值为 1。
许可证
根据 MIT 许可证授权。有关详情,请参阅 LICENSE 文件。