

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Linux 作業系統
<a name="workinginstances-os-linux"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

OpsWorks Stacks 支援下列 Linux 作業系統的 64 位元版本。
+ [Amazon Linux](https://aws.amazon.com/amazon-linux-ami/faqs/) 和 [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) （請參閱 [OpsWorks Stacks 主控台](https://console.aws.amazon.com/opsworks/)以取得目前支援的版本）
+  [Ubuntu 20.04 LTS](https://wiki.ubuntu.com/FocalFossa/ReleaseNotes) 
+ [CentOS 7 (CentOS 7)](https://docs.centos.org/en-US/centos/install-guide/Revision_History/)
+ [Red Hat Enterprise Linux 7](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/)

您也可以根據這些作業系統使用[自訂 AMI](workinginstances-custom-ami.md)。

下列為 Linux 執行個體的一般注意事項：

**支援的套件版本**  
支援的套件 (例如 Ruby) 版本和修補程式層級，取決於下列各節中所述的作業系統和版本。

**更新**  
根據預設， OpsWorks Stacks 會在執行個體開機`apt-get update`後自動呼叫 `yum update`或 ，以確保 Linux 執行個體具有最新的安全修補程式。若要停用自動更新，請使用 [CreateInstance](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateInstance.html)、[UpdateInstance](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateInstance.html)、[CreateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateLayer.html) 或 [UpdateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateLayer.html) 動作，或同等的 [AWS 開發套件](https://aws.amazon.com/tools/)方法或 [AWS CLI](https://aws.amazon.com/documentation/cli/) 命令，將 `InstallUpdatesOnBoot` 參數設定為 `false`。  
為了避免服務中斷， OpsWorks Stacks 不會在執行個體上線後自動安裝更新。您可以執行 [Upgrade Operating System (升級作業系統) 堆疊命令](workingstacks-commands.md)，隨時手動更新線上執行個體的作業系統。如需如何管理安全性更新的詳細資訊，請參閱[管理安全性更新](workingsecurity-updates.md)。  
如需進一步了解 OpsWorks Stacks 如何更新執行個體，請根據其中一個支援的作業系統建立自訂 AMI。例如，您可以使用自訂 AMI 來指定要在執行個體上安裝哪些套件版本。每個 Linux 發行版本都有不同的支援時程和套件合併政策，因此您應該考慮哪種方法最符合您的需求。如需詳細資訊，請參閱[使用自訂 AMI](workinginstances-custom-ami.md)。

**主機檔案**  
每個線上執行個體都有一個將 IP 地址映射至主機名稱`/etc/hosts`的檔案。 OpsWorks Stacks 包含每個執行個體`hosts`檔案中堆疊所有線上執行個體的公有和私有地址。例如，假設您的堆疊有兩個 Node.js App Server 執行個體，即 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
```

**OpsWorks Stacks 代理程式代理支援**  
Chef 11.10 OpsWorks 和更新版本堆疊的 Stacks 代理程式包含代理伺服器的基本支援，通常與隔離VPCs 搭配使用。若要啟用代理伺服器支援，執行個體必須具備 `/etc/environment` 檔案以提供適當的 HTTP 和 HTTPS 流量設定。此檔案應該會如下列所示；請將反白的文字取代為您的代理伺服器 URL 和連接埠：  

```
http_proxy="http://myproxy.example.com:8080/"
https_proxy="http://myproxy.example.com:8080/"
no_proxy="169.254.169.254"
```
若要啟用代理支援，我們建議您[建立自訂 AMI](workinginstances-custom-ami.md)，以包含適當的 `/etc/environment` 檔案，並使用該 AMI 來建立您的執行個體。  
我們不建議使用自訂配方在您的執行個體上建立 `/etc/environment` 檔案。在任何自訂配方執行之前， OpsWorks Stacks 在設定程序的早期需要代理伺服器資料。

**Topics**
+ [Amazon Linux](#workinginstances-os-amazon)
+ [Ubuntu LTS](#workinginstances-os-linux-ubuntu)
+ [CentOS](#workinginstances-os-linux-centos)
+ [Red Hat Enterprise Linux](#workinginstances-os-linux-rhel)

## Amazon Linux
<a name="workinginstances-os-amazon"></a>

OpsWorks Stacks 支援 Amazon Linux 和 Amazon Linux 2 的 64 位元版本。除了定期更新和修補程式，Amazon Linux 大約每六個月會發行新版本，其中涉及大量變更。當您建立堆疊或新執行個體時，您必須指定要使用的 Amazon Linux 版本。當 AWS 發行新版本時，您的執行個體會繼續執行指定的版本，直到您明確變更版本為止。當新的 Amazon Linux 版本發行之後，會有四週的遷移期間，在這段期間，AWS 會持續提供舊版本的定期更新。遷移期間結束之後，您的執行個體可以繼續執行舊版本，但 AWS 不會提供進一步的更新。如需詳細資訊，請參閱 [Amazon Linux AMI 常見問答集](https://aws.amazon.com/amazon-linux-ami/faqs/#lock)。

當新的 Amazon Linux 版本發行之後，建議您在遷移期間內更新至新版本，以讓執行個體持續接收安全性更新。在您更新生產堆疊的執行個體之前，建議您先啟動新的執行個體，並確認應用程式可在新版本上正確執行。接著，您即可更新生產堆疊的執行個體。

**注意**  
根據預設，當新的 Amazon Linux 版本發行時，以其為依據的自訂 AMI 會自動更新到該版本。建議作法是將自訂 AMI 鎖定為特定 Amazon Linux 版本，以便將更新延遲直到您測試過新版本為止。如需詳細資訊，請參閱[如何將 AMI 鎖定為特定版本？](https://aws.amazon.com/amazon-linux-ami/faqs/#lock)。  
如果您使用 CloudFormation 範本建立具有執行 Amazon Linux 之執行個體的堆疊，範本應明確指定 Amazon Linux 版本。尤其是，若您的範本指定 `Amazon Linux`，執行個體會持續執行 2016.09 版本。如需詳細資訊，請參閱 [AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html) 及 [AWS::OpsWorks::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html)。

若要更新執行個體的 Amazon Linux 版本，請執行下列其中一項作業：
+ 針對線上執行個體，執行 [**Upgrade Operating System (升級作業系統)** 堆疊命令](workingstacks-commands.md)。

  當新的 Amazon Linux 版本可用時，**Instances (執行個體)** 和 **Stack (堆疊)** 頁面會顯示一則通知與連結，以帶您前往 **Run Command (執行命令)** 頁面。然後，您可以執行 **Upgrade Operating System (升級作業系統)** 以升級執行個體。
+ 對於離線 Amazon Elastic Block Store 後端 (EBS 後端） 執行個體，啟動執行個體並執行**升級作業系統**，如上述陳述式所述。
+ 針對離線的執行個體存放區後端執行個體 (包括時間式和負載式執行個體)，請[編輯執行個體的 **Operating system (作業系統)** 設定](workinginstances-properties.md)以指定新的版本。

  OpsWorks Stacks 會在執行個體重新啟動時，自動將執行個體更新為新版本。


**Amazon Linux：支援的 Node.js 版本**  

| Amazon Linux 版本 | Node.js 版本 | 
| --- | --- | 
|  <pre>2</pre>  |  <pre>(Not applicable to operating systems that are available for Chef 12 and higher stacks only)</pre>  | 
|  <pre>2018.03</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2017.09</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2017.03</pre>  |  <pre>0.12.18</pre>  | 
|  <pre>2016.09</pre>  |  <pre>0.12.18<br />0.12.17<br />0.12.16<br />0.12.15</pre>  | 
|  <pre>2016.03</pre>  |  <pre>0.12.18<br />0.12.17<br />0.12.16<br />0.12.15<br />0.12.14<br />0.12.13<br />0.12.12<br />0.12.10</pre>  | 


**Amazon Linux：支援的 Chef 版本**  

| Chef 版本 | 支援的 Amazon Linux 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>Amazon Linux 2<br />Amazon Linux 2018.03<br />Amazon Linux 2017.09<br />Amazon Linux 2017.03<br />Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 
|  <pre>11.10</pre>  |  <pre>Amazon Linux 2018.03<br />Amazon Linux 2017.09<br />Amazon Linux 2017.03<br />Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>Amazon Linux 2016.09<br />Amazon Linux 2016.03</pre>  | 

**重要**  
更新 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
<a name="workinginstances-os-linux-ubuntu"></a>

Ubuntu 約每兩年會發行新的 Ubuntu LTS 版本，每個版本約支援 5 年。Ubuntu 會在作業系統支援期間提供安全性修補程式和更新。如需詳細資訊，請參閱 [LTS - Ubuntu Wiki](https://wiki.ubuntu.com/LTS)。
+ 您不能將現有 Ubuntu 執行個體更新到較新版本的 Ubuntu。

  您必須[建立新的 Ubuntu 執行個體](workinginstances-add.md)，並[刪除較舊的執行個體](workinginstances-delete.md)。
+ 只有 Chef 12 和更新版本的堆疊支援 Ubuntu 20.04 LTS。

## CentOS
<a name="workinginstances-os-linux-centos"></a>

OpsWorks Stacks 支援 64 位元版本的 [CentOS 7](https://docs.centos.org/en-US/docs/)。最初支援的版本是 CentOS 7，而 CentOS 約每兩年會發行新版本。

當您在 CentOS 堆疊中啟動新執行個體時， OpsWorks Stacks 會自動安裝最新的 CentOS 版本。由於發行新的 CentOS OpsWorks 次要版本時，Stacks 不會自動更新現有執行個體上的作業系統，因此新建立的執行個體可能會收到比堆疊現有執行個體更新的版本。為了保持堆疊間的版本一致性，您可以將現有的執行個體更新至目前的 CentOS 版本，如下所示：
+ 針對線上執行個體，請執行 [**Upgrade Operating System (升級作業系統)** 堆疊命令](workingstacks-commands.md)，其會在指定執行個體上執行 `yum update` 以將其更新至目前的版本。

  當新的 CentOS 7 次要版本可用時，**Instances (執行個體)** 和 **Stack (堆疊)** 頁面會顯示一則通知與連結，以帶您前往 **Run Command (執行命令)** 頁面。然後，您可以執行 **Upgrade Operating System (升級作業系統)** 以升級執行個體。
+ 對於離線 Amazon EBS 支援的執行個體，啟動執行個體並執行**升級作業系統**，如上述清單項目所述。
+ 對於離線執行個體後端執行個體， OpsWorks Stacks 會在執行個體重新啟動時自動安裝新版本。


**CentOS：支援的 Chef 版本**  

| Chef 版本 | 支援的 CentOS 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>CentOS 7</pre>  | 
|  <pre>11.10</pre>  |  <pre>(None supported)</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>(None supported)</pre>  | 

**注意**  
OpsWorks Stacks 支援適用於 CentOS 執行個體的 Apache 2.4。

## Red Hat Enterprise Linux
<a name="workinginstances-os-linux-rhel"></a>

OpsWorks Stacks 支援 64 位元版本的 [Red Hat Enterprise Linux 7](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/) (RHEL 7)。最初支援的版本是 RHEL 7.1，而 Red Hat 約每九個月會發行新的次要版本。次要版本應與 RHEL 7.0 相容。如需詳細資訊，請參閱[生命週期和更新政策](https://access.redhat.com/support/policy/update_policies)。

當您啟動新的執行個體時， OpsWorks Stacks 會自動安裝目前的 RHEL 7 版本。由於發行新的 RHEL OpsWorks 7 次要版本時，Stacks 不會自動更新現有執行個體上的作業系統，因此新建立的執行個體可能會收到比堆疊現有執行個體更新的版本。為了保持堆疊間的版本一致性，您可以將現有的執行個體更新至目前的 RHEL 7 版本，如下所示：
+ 針對線上執行個體，請執行 [**Upgrade Operating System (升級作業系統)** 堆疊命令](workingstacks-commands.md)，其會在指定執行個體上執行 `yum update` 以將其更新至目前的版本。

  當新的 RHEL 7 次要版本可用時，**Instances (執行個體)** 和 **Stack (堆疊)** 頁面會顯示一則通知與連結，以帶您前往 **Run Command (執行命令)** 頁面。然後，您可以執行 **Upgrade Operating System (升級作業系統)** 以升級執行個體。
+ 對於離線 Amazon EBS 支援的執行個體，啟動執行個體並執行**升級作業系統**，如上述清單項目所述。
+ 對於離線執行個體後端執行個體， OpsWorks Stacks 會在執行個體重新啟動時自動安裝新版本。


**Red Hat Enterprise Linux：支援的 Node.js 版本**  

| RHEL 版本 | Node.js 版本 | 
| --- | --- | 
|  <pre>7</pre>  |  <pre>(Node.js versions only apply to Chef 11.10 stacks)<br />0.8.19<br />0.8.26<br />0.10.11<br />0.10.21<br />0.10.24<br />0.10.25<br />0.10.27<br />0.10.29<br />0.10.40<br />0.12.10<br />0.12.12<br />0.12.13<br />0.12.15</pre>  | 


**Red Hat Enterprise Linux：支援的 Chef 版本**  

| Chef 版本 | 支援的 RHEL 版本 | 
| --- | --- | 
|  <pre>12</pre>  |  <pre>Red Hat Enterprise Linux 7</pre>  | 
|  <pre>11.10</pre>  |  <pre>Red Hat Enterprise Linux 7</pre>  | 
|  <pre>11.4 (deprecated)</pre>  |  <pre>(None supported)</pre>  | 

所有早於 0.10.40 的 Node.js 版本都已棄用。 0.12.7 和 0.12.9 也已棄用。

**注意**  
OpsWorks Stacks 支援 RHEL 7 執行個體的 Apache 2.4。