如何在间隔一段时间后使用相同的更新更新两台 Amazon Linux 主机

如何在间隔一段时间后使用相同的更新更新两台 Amazon Linux 主机

我有两台 Linux 主机(AWS EC2 - 基于“centos rhel fedora”的 Amazon Linux),一台用于生产,一台用于验收。我想要执行每月更新周期,其中在验收主机上执行更新,进行一周(或两周左右)的业务测试,然后在生产上执行完全相同的更新。我目前使用 yum 来执行更新,因此我尝试了 yum 列表更新,我可以将其输出到文件中,但我找不到 yum 只安装该文件中列出的软件包的方法。

我可以使用一些建议和/或解决方案来确定最佳方法。请知道这是一家非常小的企业,因此设置自托管存储库并使用 ansible 不是一种选择,但我愿意接受(不太昂贵)基于亚马逊的解决方案,尽管我更喜欢使用简单的脚本/命令。

答案1

从技术上讲,您应该使用第三个主机。理论上,您希望在“接受”主机上采取与生产中相同的管理操作。通过这种方式,您就证明了您希望在生产中采取的管理措施一定会起作用。这意味着为该管理操作构建参考文件应该在第三台(我们称之为)“开发”主机上进行。


Amazon Linux 与 Redhat 有着共同的血统。因此,您经常会发现 Redhat 文档很有用。

Redhat Enterprise 文档中有一部分涵盖了您的具体情况。 (见8.3.3恢复和重复交易)。

当管理多个相同的系统时,Yum 还允许您在其中一个系统上执行事务,将事务详细信息存储在文件中,并在经过一段时间的测试后,在其余系统上重复相同的事务。要将交易详细信息存储到文件中,请以 root 身份在 shell 提示符下键入以下内容:

yum -q history addon-info id saved_tx > file_name

将此文件复制到目标系统后,您可以以 root 身份使用以下命令重复该事务:

yum load-transaction file_name

实际上,这意味着您将在一台主机上运行命令,例如:

sudo yum upgrade
sudo yum history addon-info last saved_tx > upgrade_transaction_log

然后将新文件移动upgrade_transaction_log到下一个主机并运行:

sudo yum load-transaction upgrade_transaction_log

您将负责确保两台主机的启动相同。

相关内容