關於在 Windows 系統上設定 Terraform

若要使用 Terraform 來建立 Oracle Cloud Infrastructure 元件,您必須下載並安裝 Terraform。您也會下載建立組態檔的 Terraform 模組,這些組態檔將使用這些模組來建立必要的基礎架構元件。

您安裝 Terraform 並儲存 Teraform 模組的系統可以是企業內部部署或雲端模組。為了方便起見,我們會將此參照為您的區域系統或區域主機。

執行 Terraform 之前:

  • 產生可用來存取運算執行處理的 SSH 金鑰組

  • 產生用於認證 Terraform 發出之 API 呼叫的 API 簽章金鑰

  • 設定 Terraform 用來認證存取與執行其計畫的環境變數

完成這些步驟之後,您就可以套用 Terraform 組態檔,在 Oracle Cloud Infrastructure 上建立您的基礎架構元件。

安裝 Terraform

若要在 Windows 系統上安裝 Terraform,請從 Terraform 網站下載適當的套裝軟體。

  1. 前往 https://www.terraform.io/downloads.html
  2. 將適用的套裝程式下載至您的本機系統。
  3. 將套裝程式解壓縮至C:\Program Files (x86) 資料夾。
    此路徑用作範例。不過,您也可以在本機系統中的任何其他位置執行 Terraform。
  4. 更新路徑環境變數,以包含 Terraform 執行檔所在的資料夾。
    1. 請至「控制台」
    2. 按一下「系統」。
    3. 在 Windows 10 系統上,按一下進階系統設定值。此選項在不同版本的 Windows 中可能會有所不同。
      將會顯示「系統特性」視窗的「階」頁籤。
    4. 按一下靠近視窗底部的環境變數。
      就會顯示「環境變數」視窗。
    5. 在「系統變數」窗格中,按一下路徑,然後按一下編輯。
    6. 按一下新增。將路徑新增至 Terraform 執行檔所在的資料夾
    7. 按一下定,儲存您的變更,然後按一下定,結束環境變數視窗。然後再按一下定,結束「系統特性」視窗。
  5. 若要驗證您的安裝並檢查版本,請啟動 Windows PowerShell 並輸入:terraform -version
    您將會在輸出中顯示 Terraform 版本。例如:Terraform v0.11.8

產生 SSH 金鑰組以存取防禦主機

SSH 金鑰組可用來安全地存取在公用子網路中建立的執行處理。您可以在本機主機上產生 SSH 金鑰組。然後,Terraform 模組會將 SSH 公開金鑰新增至防禦主機。當您需要透過公用網際網路連線至防禦主機時,請提供 SSH 私密金鑰以認證存取權。

您可以使用 PuTTYgen 來產生 SSH 金鑰組。請勿設定 SSH 金鑰的密碼詞組。

  1. 啟動 PuTTYgen。
  2. 接受 SSH-2 RSA 的預設金鑰類型,並將產生之金鑰中的位元數目設為 2048 (如果尚未設定)。
  3. 按一下生,然後將滑鼠移至空白區域周圍以產生隨機性。
    就會產生金鑰,並在公開金鑰底下顯示其值以貼到 OpenSSH authorized_keys 檔案中。
  4. 按一下儲存私密金鑰。系統會提示您確認不要使用密碼詞組來儲存金鑰。按一下是。您可以將此金鑰儲存在任何位置,但為了簡單起見,請將它儲存在 Terraform 模組所在的相同資料夾中。
  5. 接著,若要儲存公開金鑰,請選取公開金鑰中所有產生的金鑰,以貼到 OpenSSH authorized_keys 檔案欄位中,複製公開金鑰並貼到文字檔中。將此檔案儲存在與私密金鑰相同的位置。請勿使用儲存公開金鑰按鈕,因為它不會以 OpenSSH 格式儲存金鑰
您現在已經在本機系統中產生並儲存 SSH 金鑰組。請確定記下儲存此金鑰組的位置。

產生 SSH 金鑰組以存取其他執行處理

防禦主機是用來啟用 SSH 轉送至沒有公用 IP 位址但不允許透過公用網際網路存取的其他執行處理。若要安全地從防禦主機存取其他執行處理,請使用 SSH 金鑰組,其中儲存在專用子網路之執行處理上的公用金鑰與儲存在本機機器上的私密金鑰相符。

用來從防禦主機存取其他執行處理的 SSH 金鑰組必須使用 OpenSSL 或 SSH-keygen。等公用程式產生。您無法使用在 Windows 上使用 PuTTY 產生的 SSH 金鑰組,因為 Oracle Linux 或其他 UNIX 作業系統不支援 PuTTY 使用的.ppk 格式。請記住,防禦主機 (將 SSH 流量轉送給其他執行處理) 會使用 Oracle Linux 映像檔。

  1. 啟動 Git Bash。
  2. 輸入:ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    在此命令中:
    • -t rsa 指定應使用 RSA 演算法來產生金鑰

    • -N "" 指定要與此金鑰關聯的密碼詞組。請勿在報價之間輸入任何內容。建立的金鑰不含密碼詞組。

    • -b 2048 指定您要產生 2048–bit 金鑰。這是預設值,也是最小建議值。

    • -C "<key_name>" 指定此金鑰組的名稱。

    • -f <path/root_name>指定儲存金鑰的位置,以及公用和私密金鑰的根名稱。公開金鑰會在根名稱附加.pub

SSH 金鑰組會產生並儲存在您指定的位置中。請記下此位置。

產生 API 簽署金鑰

您必須以隱私權增強型郵件 (PEM) 格式提供 RSA 金鑰組,才能在 Oracle Cloud Infrastructure 認證您的 Terraform 命令檔。請注意,此 API 簽章金鑰與您用來存取執行處理的 SSH 金鑰組不同。您可以使用 Git Bash 中的 OpenSSL 來產生此金鑰組。您應該已經在本機系統上安裝 Git Bash。

  1. 啟動 Git Bash。
  2. 建立隱藏的資料夾以儲存 PEM 金鑰。您可以將 PEM 金鑰儲存在任何位置,但為了簡單起見,請在 Terraform 模組所在的資料夾下建立此資料夾。請確定您已記下儲存金鑰組的位置。導覽至該位置並輸入:mkdir ./.oci
  3. 若要建立 API 簽章金鑰,請輸入:openssl genrsa -out ./.oci/key_name.pem 2048
  4. 變更此私密金鑰的權限,以確保只有您能夠讀取此私密金鑰。輸入:chmod go-rwx ./.oci/key_name.pem
  5. 接著,若要產生指定私密金鑰的公開金鑰,請輸入:openssl rsa -pubout -in ./.oci/key_name.pem -out ./.oci/key_name_public.pem
公用和私密 API 簽章金鑰儲存在指定的資料夾中。

使用主控台上傳 API 簽章金鑰

產生 API 簽章金鑰之後,您必須在 Oracle Cloud Infrastructure 中上傳關聯使用者的公開金鑰。第一次上傳 API 簽章金鑰時,必須使用主控台。接著,您也可以使用 API 來上傳 API 金鑰。

  1. 登入 Oracle Cloud Infrastructure 主控台。
  2. 按一下別,然後按一下使用者。
  3. 按一下您要為其新增 API 簽章金鑰的使用者。
  4. 在使用者詳細資料頁面上,按一下新增公開金鑰。
  5. 在本機系統上,啟動 Git Bash。瀏覽至您儲存 API 簽章金鑰組的資料夾
  6. 若要複製公開金鑰,請輸入:cat ./key_name_public.pem. 公開金鑰值隨即顯示。複製此值,包括-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----。
  7. 在主控台中貼上公開金鑰值,然後按一下新增。