Linux 操作系统: - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Linux 操作系统:

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

AWS OpsWorks Stacks 支持以下 Linux 操作系统的 64 位版本。

您还可以使用基于这些操作系统的自定义 AMI

关于 Linux 实例的一些常规说明:

支持的包版本

支持的版本和包的补丁级别 (如 Ruby) 取决于操作系统和版本,如后面的部分中所述。

更新

默认情况下, AWS OpsWorks Stacks 通过自动调用yum update或在实例启动apt-get update后自动调用来确保 Linux 实例安装最新的安全补丁。要禁用自动更新,请使用CreateInstanceUpdateInstanceCreateLayer、或UpdateLayer操作(或等效的 AW S 开发工具包方法或 AWS CLI 命令)将InstallUpdatesOnBoot参数设置为。false

为避免服务中断, AWS OpsWorks Stacks 不会在实例联机后自动安装更新。您可以通过运行 Upgrade Operating System 堆栈命令,随时手动更新联机实例的操作系统。有关如何管理安全更新的更多信息,请参阅管理安全更新

要更好地控制 AWS OpsWorks Stacks 如何更新您的实例,请基于支持的操作系统之一创建自定义 AMI。例如,通过自定义 AMI,您可以指定在实例上安装哪些程序包版本。每个 Linux 发行版都具有不同的支持时间表和程序包合并策略,因此,您应当考虑哪种方法最适合您的要求。有关更多信息,请参阅 使用自定义 AMI

主机文件

每个在线实例都有一个将 IP 地址映射到主机名的/etc/hosts文件。 AWS OpsWorks 堆栈包含每个实例hosts文件中所有堆栈在线实例的公用地址和私有地址。例如,假设您有一个堆栈,该堆栈拥有两个 Node.js 应用程序服务器实例(nodejs-app1 和 nodejs-app2)以及一个 MySQL 实例 (db-master1)。nodejs-app1 实例的 hosts 文件将如以下示例所示,其他实例将拥有相似的 hosts 文件。

... # OpsWorks Layer State 192.0.2.0 nodejs-app1.localdomain nodejs-app1 10.145.160.232 db-master1 198.51.100.0 db-master1-ext 10.243.77.78 nodejs-app2 203.0.113.0 nodejs-app2-ext 10.84.66.6 nodejs-app1 192.0.2.0 nodejs-app1-ext
AWS OpsWorks 堆栈代理代理支持

Chef 11.10 及更高版本 AWS OpsWorks 堆栈的堆栈代理包括对代理服务器的基本支持,代理服务器通常用于隔离的 VPC。要启用代理服务器支持,实例必须拥有为 HTTP 和 HTTPS 流量提供适当设置的 /etc/environment 文件。该文件应当如下所示,其中,您可以将突出显示的文本替换为您的代理服务器的 URL 和端口:

http_proxy="http://myproxy.example.com:8080/" https_proxy="http://myproxy.example.com:8080/" no_proxy="169.254.169.254"

要启用代理支持,我们建议创建自定义 AMI (其中包括一个合适的 /etc/environment 文件),然后使用该 AMI 创建您的实例。

注意

我们不建议使用自定义配方在您的实例上创建/etc/environment文件。 AWS OpsWorks Stacks 需要在设置过程的早期,也就是任何自定义配方执行之前的代理服务器数据。

Amazon Linux

AWS OpsWorks Stacks 支持 64 位版本的亚马逊 Linux 和亚马逊 Linux 2。除了定期更新和补丁外,Amazon Linux 大约每六个月还会发布新版本,新版本中可能涉及重大更改。当您创建堆栈或新的实例时,您必须指定要使用哪一个 Amazon Linux 版本。当 AWS 发布新版本后,您的实例将继续运行指定的版本,直到您明确更改该版本。新 Amazon Linux 版本发布后,有为期四周的迁移周期,在此周期内,AWS 将继续提供针对旧版本的定期更新。迁移周期结束后,您的实例仍可以继续运行旧版本,但 AWS 不再提供更新。有关更多信息,请参阅 Amazon Linux AMI 常见问题

当新的 Amazon Linux 版本发布后,我们建议您在迁移周期内更新到新版本,以便您的实例继续获得安全更新。更新您的生产堆栈的实例之前,我们建议您启动一个新的实例,并验证您的应用程序可以在新版本上正常运行。然后,您可以更新生产堆栈实例。

注意

默认情况下,基于 Amazon Linux 的自定义 AMI 会在发布后自动更新到新版本。建议的做法是:将您的自定义 AMI 保持在特定的 Amazon Linux 版本,这样,您就可以推迟更新,直到您测试了新版本。有关更多信息,请参阅如何将我的 AMI 保持在特定版本?

如果您使用 AWS CloudFormation 模板创建包含运行 Amazon Linux 的实例的堆栈,则模板应明确指定亚马逊 Linux 版本。具体而言,如果您的模板指定 Amazon Linux,则实例将继续运行版本 2016.09。有关更多信息,请参阅AWS::OpsWorks::StackAWS::OpsWorks::Instance

要更新实例的 Amazon Linux 版本,请执行以下操作之一:

  • 对于联机实例,运行 Upgrade Operating System 堆栈命令

    当有新的 Amazon Linux 版本可用时,InstancesStack 页面将显示一个通知,其中包含一个可让您转到 Run Command 页面的链接。然后,您可以运行 Upgrade Operating System 升级您的实例。

  • 对于由 Amazon Elastic Block Store 支持(由 EBS 支持)的脱机实例,启动实例并运行升级操作系统,如前面的说明所述。

  • 对于由实例存储支持的脱机实例 (包括基于时间和基于负载的实例),编辑实例的 Operating system 设置以指定新版本。

    AWS OpsWorks 堆栈在实例重启时会自动将其更新到新版本。

Amazon Linux:受支持的 Node.js 版本
Amazon Linux 版本 Node.js 版本
2
(Not applicable to operating systems that are available for Chef 12 and higher stacks only)
2018.03
0.12.18
2017.09
0.12.18
2017.03
0.12.18
2016.09
0.12.18 0.12.17 0.12.16 0.12.15
2016.03
0.12.18 0.12.17 0.12.16 0.12.15 0.12.14 0.12.13 0.12.12 0.12.10
Amazon Linux:受支持的 Chef 版本
Chef 版本 受支持的 Amazon Linux 版本
12
Amazon Linux 2 Amazon Linux 2018.03 Amazon Linux 2017.09 Amazon Linux 2017.03 Amazon Linux 2016.09 Amazon Linux 2016.03
11.10
Amazon Linux 2018.03 Amazon Linux 2017.09 Amazon Linux 2017.03 Amazon Linux 2016.09 Amazon Linux 2016.03
11.4 (deprecated)
Amazon Linux 2016.09 Amazon Linux 2016.03
重要

更新 t1.micro 实例之前,请确保它们拥有临时交换文件 /var/swapfile。Chef 0.9 堆栈上的 t1.micro 实例没有交换文件。对于 Chef 11.4 和 Chef 11.10 堆栈,新版本的实例代理会自动为 t1.micro 实例创建交换文件。但是,此更改在几周之后引入,因此,您应当检查大约在 2014 年 3 月 24 日之前创建的实例上是否存在 /var/swapfile

对于缺少交换文件的 t1.micro 实例,您可以根据以下方法创建一个交换文件:

  • 对于 Chef 11.10 及更高版本的堆栈,创建新的 t1.micro 实例,这些实例自动拥有一个交换文件。

  • 对于 Chef 0.9 堆栈,以根用户的身份对每个实例运行以下命令。

    dd if=/dev/zero of=/var/swapfile bs=1M count=256 mkswap /var/swapfile chown root:root /var/swapfile chmod 0600 /var/swapfile swapon /var/swapfile

    如果您不希望创建新实例,还可以在 Chef 11.10 和更高版本上使用这些命令。

Ubuntu LTS

Ubuntu 大约每两年发布一次新的 Ubuntu LTS 版本,并为每个版本提供大约五年的支持。Ubuntu 在整个操作系统支持期间提供安全补丁和更新。有关更多信息,请参阅 LTS - Ubuntu Wiki

CentOS

AWS OpsWorks Stacks 支持 64 位版本的 CentOS 7。最开始受支持的版本是 CentOS 7,CentOS 大约每两年发布一次新版本。

当你在 CentOS 堆栈中启动一个新实例时, AWS OpsWorks Stacks 会自动安装最新的 CentOS 版本。由于在新的 CentOS 次要版本发布时, AWS OpsWorks Stacks 不会自动更新现有实例上的操作系统,因此新创建的实例可能会比堆栈的现有实例获得更新的版本。要使版本在您的堆栈中保持一致,您可以按照以下方法将您的现有实例更新到当前的 CentOS 版本:

  • 对于联机实例,运行 Upgrade Operating System 堆栈命令,该命令将对指定实例运行 yum update 以将其更新到当前版本。

    当有新的 CentOS 7 次要版本可用时,InstancesStack 页面将显示一个通知,其中包含一个可让您转到 Run Command 页面的链接。然后,您可以运行 Upgrade Operating System 升级您的实例。

  • 对于由 Amazon EBS 支持的脱机实例,启动实例并运行升级操作系统,如上一列表项中所述。

  • 对于离线实例存储支持的实例, AWS OpsWorks Stacks 会在实例重启时自动安装新版本。

CentOS:受支持的 Chef 版本
Chef 版本 受支持的 CentOS 版本
12
CentOS 7
11.10
(None supported)
11.4 (deprecated)
(None supported)
注意

AWS OpsWorks Stacks 支持 CentOS 实例的 Apache 2.4。

Red Hat Enterprise Linux

AWS OpsWorks Stacks 支持 64 位版本的红帽企业 Linux 7 (RHEL 7)。最初支持的版本是 RHEL 7.1,Red Hat 大约每 9 个月发布一次新的次要版本。次要版本应当与 RHEL 7.0 兼容。有关更多信息,请参阅生命周期和更新策略

当您启动新实例时, AWS OpsWorks Stacks 会自动安装当前的 RHEL 7 版本。由于在发布新的 RHEL 7 次要版本时, AWS OpsWorks Stacks 不会自动更新现有实例上的操作系统,因此新创建的实例可能会收到比堆栈现有实例更新的版本。要使版本在您的堆栈中保持一致,您可以按照以下方法将您的现有实例更新到当前的 RHEL 7 版本:

  • 对于联机实例,运行 Upgrade Operating System 堆栈命令,该命令将对指定实例运行 yum update 以将其更新到当前版本。

    当有新的 RHEL 7 版本可用时,InstancesStack 页面将显示一个通知,其中包含一个可让您转到 Run Command 页面的链接。然后,您可以运行 Upgrade Operating System 升级您的实例。

  • 对于由 Amazon EBS 支持的脱机实例,启动实例并运行升级操作系统,如上一列表项中所述。

  • 对于离线实例存储支持的实例, AWS OpsWorks Stacks 会在实例重启时自动安装新版本。

Red Hat Enterprise Linux:受支持的 Node.js 版本
RHEL 版本 Node.js 版本
7
(Node.js versions only apply to Chef 11.10 stacks) 0.8.19 0.8.26 0.10.11 0.10.21 0.10.24 0.10.25 0.10.27 0.10.29 0.10.40 0.12.10 0.12.12 0.12.13 0.12.15
Red Hat Enterprise Linux:受支持的 Chef 版本
Chef 版本 受支持的 RHEL 版本
12
Red Hat Enterprise Linux 7
11.10
Red Hat Enterprise Linux 7
11.4 (deprecated)
(None supported)

所有早于 0.10.40 的 Node.js 版本均已弃用。0.12.7 和 0.12.9 也已弃用。

注意

AWS OpsWorks Stacks 支持 RHEL 7 实例的 Apache 2.4。