

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

# 已註冊執行個體的生命週期
<a name="registered-instances-lifecycle"></a>

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

**注意**  
只有 Linux 堆疊支援此功能。

已註冊執行個體的生命週期是從安裝及執行代理程式之後開始。此時，它會指示 OpsWorks Stacks 向堆疊註冊執行個體。下列狀態圖表摘要說明生命週期的主要元素。

![\[State diagram showing lifecycle of registered instances with various states and transitions.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/on-prem-state.png)


每個狀態對應至一個執行個體狀態。邊緣代表下列其中一個 OpsWorks Stacks 命令。下列各節將會詳細討論。
+ **設定** – 此命令對應於設定[生命週期事件](workingcookbook-events.md)，並執行執行個體的設定配方。
+ **設定** – 此命令對應至設定生命週期事件。

  OpsWorks 當執行個體進入或離開線上狀態時， Stacks 會在堆疊中的每個執行個體上觸發此事件。執行個體會執行其設定配方，這會進行任何必要變更，以配合新的執行個體。
+ **關閉** – 此命令對應於執行執行個體關機配方的關機生命週期事件。

  這些配方會執行關閉服務等任務，但不會停止執行個體。
+ **取消註冊** – 此命令會取消註冊執行個體，且不對應至生命週期事件。

**注意**  
為求簡化，此圖表不會顯示 Deregistering (正在取消註冊) 和 Deleted (已刪除) 狀態。您可以取消註冊圖表中任何狀態的執行個體，這會將取消註冊命令傳送至執行個體，並將其移至 Deregistering (正在取消註冊) 狀態。  
如果您取消註冊線上執行個體， OpsWorks Stacks 會將 Configure 命令傳送至堆疊中的其餘執行個體，以通知他們執行個體正在離線。
確認取消註冊命令之後，執行個體仍在執行中，但會處於 Deleted (已刪除) 狀態，且不再是堆疊的一部分。如果您想要將執行個體再次納入堆疊，您必須重新註冊。

**Topics**
+ [正在註冊](#registered-instances-lifecycle-registering)
+ [安裝執行中](#registered-instances-lifecycle-running-setup)
+ [已登記](#registered-instances-lifecycle-registered)
+ [正在指派](#registered-instances-lifecycle-assigning)
+ [線上](#registered-instances-lifecycle-online)
+ [安裝失敗](#registered-instances-lifecycle-setup-failed)
+ [正在取消指派](#registered-instances-lifecycle-unassigning)
+ [初始安裝組態變更](#registered-instances-lifecycle-setup-config)

## 正在註冊
<a name="registered-instances-lifecycle-registering"></a>

代理程式傳送註冊請求後， OpsWorks Stacks 會傳送設定命令至執行個體，使其進入註冊狀態，以啟動執行個體生命週期。執行個體確認安裝命令之後，便會移至 [安裝執行中](#registered-instances-lifecycle-running-setup) 狀態。

## 安裝執行中
<a name="registered-instances-lifecycle-running-setup"></a>

Running Setup (安裝執行中) 狀態會執行執行個體的安裝配方。安裝運作與否，取決於先前狀態。

**注意**  
如果您在執行個體處於執行中設定狀態時取消指派執行個體， OpsWorks Stacks 會傳送 Shutdown 命令，該命令會執行執行個體的關機配方，但不會停止執行個體。執行個體會移至 [正在取消指派](#registered-instances-lifecycle-unassigning) 狀態。

**Topics**
+ [正在註冊](#registered-instances-lifecycle-running-setup-registering)
+ [正在指派](#registered-instances-lifecycle-running-setup-assigning)
+ [安裝失敗](#registered-instances-lifecycle-running-setup-failed)

### 正在註冊
<a name="registered-instances-lifecycle-running-setup-registering"></a>

在註冊程序期間， 設定會建立 OpsWorks Stacks 執行個體來代表堆疊中已註冊的執行個體，並在執行個體上執行一組核心設定配方。

初始安裝所執行的一項重要變更是覆寫執行個體的主機檔案。藉由註冊執行個體，您會將使用者管理移交給 OpsWorks Stacks，其必須具有自己的主機檔案才能控制 SSH 登入許可。初始安裝也會建立或修改一些檔案，並在 Ubuntu 系統上修改套件來源及安裝一組套件。如需詳細資訊，請參閱[初始安裝組態變更](#registered-instances-lifecycle-setup-config)。

在註冊期間， 程序會呼叫 IAM`AttachUserPolicy`，該 IAM 是附加至您建立為先決條件的 IAM 使用者之許可的一部分。如果 `AttachUserPolicy` 不存在 (最可能的原因是您執行舊版 AWS CLI)，則程序會回到呼叫 `PutUserPolicy`。

**注意**  
為了保持一致性， OpsWorks Stacks 會執行每個核心設定配方。不過，其中一些配方只會在執行個體已指派給至少一 layer 時執行其部分或所有任務，因此不一定會影響初始安裝。
+ 如果安裝成功，執行個體會移至 [已登記](#registered-instances-lifecycle-registered) 狀態。
+ 如果安裝失敗，執行個體會移至 [安裝失敗](#registered-instances-lifecycle-setup-failed) 狀態。

### 正在指派
<a name="registered-instances-lifecycle-running-setup-assigning"></a>

執行個體至少有一個指派的 layer。 OpsWorks Stacks 會執行每個 layer 的設定配方，包括您[指派給 layer 設定事件](workingcookbook-executing.md)的任何自訂配方。
+ 如果安裝成功，執行個體會移至 Online (線上) 狀態，而且 OpsWorks Stacks 會在堆疊中的每個執行個體上觸發設定生命週期事件，以通知它們有此新的執行個體。
+ 如果安裝失敗，執行個體會移至 Setup Failed (安裝失敗) 狀態。

**注意**  
此安裝程序會再次執行核心配方。不過，Chef 配方為等冪操作，因此不會重複已執行的任何任務。

### 安裝失敗
<a name="registered-instances-lifecycle-running-setup-failed"></a>

如果 [正在指派](#registered-instances-lifecycle-assigning) 狀態之執行個體的安裝程序失敗，您可以使用[安裝堆疊命令](workingstacks-commands.md)再試一次，來手動重新執行執行個體的安裝配方。
+ 如果安裝成功，指派的執行個體會移至 [線上](#registered-instances-lifecycle-online) 狀態，而且 OpsWorks Stacks 會在堆疊中的每個執行個體上觸發設定生命週期事件，以通知它們有此新的執行個體。
+ 如果安裝嘗試失敗，執行個體會移回 Setup Failed (安裝失敗) 狀態。

## 已登記
<a name="registered-instances-lifecycle-registered"></a>

處於已註冊狀態的執行個體是堆疊的一部分，由 Stacks OpsWorks 管理，但不會指派給 layer。它們可以無限期地保持在此狀態。

如果您將執行個體指派給一或多個 layer， OpsWorks Stacks 會傳送設定命令給執行個體，並移至 [正在指派](#registered-instances-lifecycle-assigning) 狀態。

## 正在指派
<a name="registered-instances-lifecycle-assigning"></a>

執行個體確認安裝命令之後，便會移至 [安裝執行中](#registered-instances-lifecycle-running-setup) 狀態。

如果您在執行個體處於指派狀態時取消指派執行個體， OpsWorks Stacks 會終止設定程序並傳送關機命令。執行個體會移至 [正在取消指派](#registered-instances-lifecycle-unassigning) 狀態。

## 線上
<a name="registered-instances-lifecycle-online"></a>

執行個體現在是至少一 layer 的成員，並會視為一般 OpsWorks Stacks 執行個體。它可以無限期地保持在此狀態。

如果您在執行個體處於線上狀態時取消指派執行個體， OpsWorks Stacks 會將 Shutdown 命令傳送至執行個體，並將 Configure 命令傳送至堆疊的其餘執行個體。執行個體會移至 [正在取消指派](#registered-instances-lifecycle-unassigning) 狀態。

## 安裝失敗
<a name="registered-instances-lifecycle-setup-failed"></a>

安裝命令失敗。
+ 您可以執行[安裝堆疊命令](workingstacks-commands.md)再試一次。

  執行個體會返回 [安裝執行中](#registered-instances-lifecycle-running-setup) 狀態。
+ 如果您取消指派執行個體， OpsWorks Stacks 會將 Shutdown 命令傳送至執行個體。

  執行個體會移至 [正在取消指派](#registered-instances-lifecycle-unassigning) 狀態。

## 正在取消指派
<a name="registered-instances-lifecycle-unassigning"></a>

關機命令完成之後，執行個體將不再指派給任一 layer，並會返回 [已登記](#registered-instances-lifecycle-registered) 狀態。

**注意**  
如果將執行個體指派給多 layer，取消指派會套用至每一 layer；您無法取消指派一小部分指派 layer。如果您想要一組不同的指派 layer，請取消指派執行個體，然後重新指派所需 layer。

## 初始安裝組態變更
<a name="registered-instances-lifecycle-setup-config"></a>

初始安裝會建立或修改所有已註冊執行個體上的下列檔案和目錄。

**建立的檔案**  

```
/etc/apt/apt.conf.d/99-no-pipelining
/etc/aws/
/etc/init.d/opsworks-agent
/etc/motd
/etc/motd.opsworks-static
/etc/sudoers.d/opsworks
/etc/sudoers.d/opsworks-agent
/etc/sysctl.d/70-opsworks-defaults.conf
/opt/aws/opsworks/
/usr/sbin/opsworks-agent-cli
/var/lib/aws/
/var/log/aws/
/vol/
```

**修改的檔案**  

```
/etc/apt/apt.conf.d/99-no-pipelining
/etc/crontab
/etc/default/monit
/etc/group
/etc/gshadow
/etc/monit/monitrc
/etc/passwd
/etc/security/limits.conf (removing limits only for EC2 micro instances)
/etc/shadow
/etc/sudoers
```

初始設定也會在 Amazon EC2 微型執行個體上建立交換檔案。

初始安裝會對 Ubuntu 系統進行下列變更。

套件來源  
初始安裝會將套件來源變更如下。  
+ `deb http://archive.ubuntu.com/ubuntu/ ${code_name} main universe`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu/ ${code_name} main universe`
+ `deb http://archive.ubuntu.com/ubuntu/ ${code_name}-updates main universe`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu/ ${code_name}-updates main universe`
+ `deb http://archive.ubuntu.com/ubuntu ${code_name}-security main universe`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu ${code_name}-security main universe`
+ `deb http://archive.ubuntu.com/ubuntu/ ${code_name}-updates multiverse`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu/ ${code_name}-updates multiverse`
+ `deb http://archive.ubuntu.com/ubuntu ${code_name}-security multiverse`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu ${code_name}-security multiverse`
+ `deb http://archive.ubuntu.com/ubuntu/ ${code_name} multiverse`

  收件人： `deb-src http://archive.ubuntu.com/ubuntu/ ${code_name} multiverse`
+ `deb http://security.ubuntu.com/ubuntu ${code_name}-security multiverse`

  收件人： `deb-src http://security.ubuntu.com/ubuntu ${code_name}-security multiverse`

套件  
初始安裝會解除安裝 `landscape` 並安裝下列套件。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/registered-instances-lifecycle.html)