在亚马逊 ECS 实例上安装安全更新的最佳方式

Bas*_*igt 6 amazon-web-services ansible ansible-playbook

我们正在使用Ansible在我们所有运行有状态服务(例如数据库、搜索引擎等)的 EC2 实例上推出安全更新。这很好用。

我想知道在 ECS 实例(在 Docker 容器中运行无状态 Web 应用程序)上进行安全更新的最佳方法是什么。由于自动扩展,实例数量及其 IP 地址有很多动态变化。Ansible使用硬编码的 IP 地址列表(hosts 文件),因此它似乎并不真正符合目的。

更新这些实例是否是一个好主意,还是我们应该将它们拆除并每隔一段时间产生新的实例?

有来自 DevOps 人员的最佳实践吗?

更新:

我发现 Ansible 支持动态库存。有一个脚本可以从 AWS 获取有关主机的信息并为 Ansible 生成动态清单,这很好用。

然而,仍然存在一个问题。每当有我以前未连接过的新主机时,都会显示以下消息,必须手动确认。

The authenticity of host '10.0.1.247 (10.0.1.247)' can't be established.
ECDSA key fingerprint is SHA256:GSogs6P6CzbOzLm9ByWsXkfz7/2A4qwj4PDvczApS/I.
Are you sure you want to continue connecting (yes/no)? yes
Run Code Online (Sandbox Code Playgroud)

这很烦人,因为我想实现一个完全自动化的更新机制。这个问题有解决方案吗?

tec*_*raf 3

每当有一个我以前没有连接过的新主机时,就会显示以下消息,必须手动确认。[ ] 这个问题有解决办法吗?

修改 的ssh_connectionansible.cfg使其包含-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null参数。

例如:

[ssh_connection]
ssh_args = -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s
Run Code Online (Sandbox Code Playgroud)