linux - 如何管理具有不同计划的多个 AWS 账户的修补

标签 linux amazon-web-services chef-infra patch aws-opsworks

我正在寻找跨 AWS 账户管理 Linux 系统修补的最佳方法,需要考虑以下事项:

  • 单独计划按顺序通过开发、QA、暂存和生产推出补丁
  • 生产补丁将在批准后发布,而不是自动发布
  • 与已部署到较低环境的补丁相比,不能将更新的补丁部署到生产环境(因为新补丁会在整个月定期发布)

我们首先在每月的第一个星期日在所有环境中缓存所有补丁。目标是从缓存中安装补丁。这有助于防止在产品中安装未经审查的补丁。

大多数(不是全部)实例由 OpsWorks 管理,但 OpsWorks 堆栈数量众多。我们还有一些由 Chef Server 管理的其他实例。还有一些不受管理,只是从 EC2 控制台创建的简单 EC2 实例。这意味着,使用配方意味着我们必须逐个堆栈或逐个实例地启动已批准的补丁。不是最佳的。

最近,我们研究了使用中央 AWS 账户来管理实例的 SSM 的新功能。但是,这会导致某些应用程序出现问题,因为 SSM 的 AssumeRole 将凭据添加到 .aws/config 文件中,从而干扰我们需要运行的其他任务。

我们已经考虑过其他工具,例如 Ansible,但我们希望探索留在我们目前拥有的工具集中,主要是 OpsWorks 和 Chef Server。我正在寻找更高层次的想法,即如何处理此场景的架构。

感谢您的任何想法或想法。

最佳答案

这听起来像是 RunCommand 设计的确切场景之一。

您可以根据标签创建具有不同计划的多组服务器。更重要的是,您不需要依赖于部署在任何地方的 secret / key 。

关于linux - 如何管理具有不同计划的多个 AWS 账户的修补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695867/

相关文章:

apache - Chef Apache2 Recipe 的默认属性为零

c# - 错误 : AWS Identity and Access Management user accounts cannot be used for Amazon Mechanical Turk

php - 使用 AWS 开发工具包 PHP 的 DynamoDB 中的保留字

amazon-web-services - AWS ElasticBeanstalk Tomcat 和 Spring 中的 Websocket 无法正常工作

linux - 如何在 bash 中将其写在一行中

chef-infra - Chef 从 LWRP 提供程序代码内部通知全局服务

ruby - Chef - Dir.exists? guard 将符号链接(symbolic link)视为目录

RSA签名验证参数说明

android - 内核到用户空间应用程序通信

java - 这个 WSDL 有效吗?