

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

# 安裝 Windows 功能：IIS
<a name="cookbooks-101-opsworks-install-software-feature"></a>

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

 Windows 功能是一組選用的系統元件，包括 .NET 架構和網際網路資訊服務 (IIS)。本主題說明如何實作技術指南來安裝常用的功能：網際網路資訊服務 (IIS)。

**注意**  
[安裝套件](cookbooks-101-opsworks-install-software-package.md)顯示如何安裝軟體，其隨附您必須下載至執行個體並執行的安裝程式套件 (例如 MSI 檔案)。[IIS 技術指南](https://github.com/opscode-cookbooks/iis) 

[在 Windows 執行個體上執行配方](cookbooks-101-opsworks-opsworks-windows.md)顯示如何使用 `powershell_script` 資源來安裝 Windows 功能。此範例顯示替代方式：使用 Chef [Windows 技術指南的](https://github.com/opscode-cookbooks/windows) `windows_feature` 資源。此技術指南包含一組資源，以使用[部署映像服務和管理](https://technet.microsoft.com/en-us/library/dd744256%28v=ws.10%29.aspx)在 Windows 上執行各種任務，包括功能安裝。

**注意**  
Chef 也具有 IIS 技術指南，以用來管理 IIS。如需詳細資訊，請參閱 [IIS 技術指南](https://github.com/opscode-cookbooks/iis)。

**設定技術指南**

1. 前往 [windows 技術指南 GitHub 儲存庫](https://github.com/opscode-cookbooks/windows)，並下載 `windows` 技術指南。

   此範例假設您將 `windows` 儲存庫下載為 .zip 檔案，但如果您想要，也可以複製儲存庫。

1. 前往 [chef\$1handler 技術指南 GitHub 儲存庫](https://github.com/opscode-cookbooks/chef_handler)，並下載 `chef-handler` 技術指南。

   `windows` 技術指南取決於 `chef_handler`；您將不會直接使用它。此範例假設您將 `chef_handler` 儲存庫下載為 .zip 檔案，但如果您想要，也可以複製儲存庫。

1. 將 `windows` 和 `chef_handler` 技術指南分別解壓縮至 cookbooks 目錄中名為 `windows` 和 `chef_handler` 的目錄。

1. 在 cookbooks 目錄中建立並導覽至名為 `install-iis` 的目錄。

1. 將 `metadata.rb` 檔案新增至具有以下內容的 `install-iis`。

   ```
   name "install-iis"
   version "0.1.0"
   
   depends "windows"
   ```

   `depends` 指令可讓您在配方中使用 `windows` 技術指南資源。

1. 將 `recipes` 目錄新增至 `install-iis`，並將名為 `default.rb` 的檔案新增至包含下列配方程式碼的那個目錄。

   ```
   %w{ IIS-WebServerRole IIS-WebServer }.each do |feature|
     windows_feature feature do
       action :install
     end
   end
   
   service 'w3svc' do
     action [:start, :enable]
   end
   ```

   配方使用 `windows` 技術指南的 `windows_feature` 資源來安裝下列項目：

   1. [IIS Web 伺服器角色](https://technet.microsoft.com/en-us/library/cc770634.aspx)。

   1. [IIS Web 伺服器](https://technet.microsoft.com/en-us/library/cc753433%28v=ws.10%29.aspx)。

   配方接著會使用 [https://docs.chef.io/chef/resources.html#service](https://docs.chef.io/chef/resources.html#service) 資源來啟動和啟用 IIS 服務 (W3SVC)。
**注意**  
如需完整的可用 Windows 功能清單，請[使用 RDP 登入執行個體](workinginstances-rdp.md)，並開啟命令提示視窗，然後執行下列命令。請注意，清單相當長。  

   ```
   dism /online /Get-Features
   ```

1. 建立包含 `install-iis`、`chef_handler` 和 `windows` 技術指南的 `.zip` 封存，並將封存上傳至 S3 儲存貯體。將封存設為公有，並記錄 URL 以供日後使用。此範例假設封存命名為 `install-iis.zip`。如需詳細資訊，請參閱[技術指南儲存庫](workingcookbook-installingcustom-repo.md)。

   傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊，請參閱[如何清空 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)或[如何刪除 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

針對此範例建立堆疊，如下所示。您也可以使用現有 Windows 堆疊。只需要更新技術指南，如後面所述。

**建立堆疊**

1. 開啟 [OpsWorks Stacks 主控台](https://console.aws.amazon.com/opsworks/)，然後選擇 **Add Stack (新增堆疊)**。指定下列設定，並接受其他設定的預設值，然後選擇 **Add Stack (新增堆疊)**。
   + **名稱** – InstallIIS
   + **區域** – 美國西部 （奧勒岡）

     此範例適用於任何區域，但我們建議您使用美國西部 （奧勒岡） 進行教學課程。
   + **預設作業系統** – Microsoft Windows Server 2012 R2

1. 選擇 **Add a layer (新增 layer)**，並[新增自訂 layer](workinglayers-custom.md) 至具有下列設定的堆疊。
   + **名稱** – IIS
   + **簡短名稱** – iis

1. [新增全年無休執行個體](workinginstances-add.md) (具有預設設定) 至 IIS layer，以及[啟動它](workinginstances-starting.md)。

您現在可以安裝技術指南，並執行配方

**安裝技術指南並執行配方**

1. [編輯堆疊以啟用自訂技術指南](workingcookbook-installingcustom-enable.md)，然後指定下列設定。
   + **儲存庫類型** – **S3 封存**
   + **儲存庫 URL** – 您先前記錄的技術指南封存的 URL。

   接受其他設定的預設值，然後選擇 **Save (儲存)** 以更新堆疊組態。

1. [執行 **Update Custom Cookbooks (更新自訂技術指南)** 堆疊命令](workingstacks-commands.md)，以在堆疊線上執行個體上安裝最新版的自訂技術指南。如果存在舊版的技術指南，則此命令會予以覆寫。

1. 使用配方執行**執行執行配方**堆疊命令**以執行設定為 的配方****install-iis::default**。此命令會啟動 Chef 執行，以執行指定的配方。
**注意**  
為了方便起見，此範例使用**執行配方**，但您通常會讓 OpsWorks Stacks 透過將配方指派給適當的生命週期事件來[自動執行](workingcookbook-assigningcustom.md)配方。您可以手動觸發事件來執行這類配方。您可以使用堆疊命令來觸發安裝和設定事件，以及使用[部署命令](workingapps-deploying.md)來觸發部署和解除部署事件。

1. 若要驗證安裝，請[使用 RDP 連線至執行個體](workinginstances-rdp.md)，並開啟 Windows 檔案總管。檔案系統現在應該會有一個 `C:\inetpub` 目錄。如果您檢查控制台系統管理工具應用程式中的服務清單，則 IIS 應該接近底端。不過，它將命名為 World Wide Web Publishing Service，而不是 IIS。