關於在 Windows 系統上設定 Terraform

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

您安裝 Terraform 和儲存 Teraform 模組的系統可以位於企業內部或雲端。為了方便起見,我們將指明本機系統或您的本機主機。

在您執行 Terraform 之前:

  • 產生可讓您存取 Compute 執行處理的 SSH 金鑰組

  • 產生用來認證 TerraForm 所做之 API 呼叫的 API 簽章金鑰

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

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

安裝精簡格式

若要在 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

下載 Terraform 模組

若要開始使用 Terraform 在 Oracle Cloud Infrastructure 中建立基礎架構元件,請下載 Terraform 模組。

  1. 使用 Git 或 Web 瀏覽器來複製或下載本機系統上的 Terraform 模組。按一下左邊導覽中的下載程式碼,即可取得 Git 儲存區域的連結。
  2. 將 Terraform 模組解壓縮或解壓縮至本機系統上的任何資料夾。
  3. 啟動 Windows PowerShell,並瀏覽至您 Terraform 模組所在的資料夾。輸入 terraform init。這也會下載 Terraform 的 Oracle Cloud Infrastructure 提供者。
    終止表單會起始模組與 OCI 提供者 Plugin。初始化完成時,您會看到 Terraform has been successfully initialized!訊息

產生供存取以群組為基礎之主機的 SSH 金鑰組

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

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

  1. 啟動 PuTTYgen。
  2. 接受 SSH-2 RSA 的預設金鑰類型,如果尚未設定它,則將產生之金鑰中的位元數設為 2048。
  3. 按一下產生,然後在空白區域周圍移動滑鼠來產生隨機性。
    就會產生金鑰,而且它的值會顯示在公用金鑰之下,以貼到 OpenSSH authorized_keys 檔案中。
  4. 按一下儲存私密金鑰。系統會提示您確認是否要在不使用密碼的情況下儲存金鑰。按一下是。您可以將此金鑰儲存在任何位置,但是為了簡單起見,請將它儲存在步驟形式模組所在的相同資料夾中。
  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 位元金鑰。此為預設值,也是建議的最小值。

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

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

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

產生 API 簽署金鑰

您必須提供 Privacy Enhanced Mail (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. 在主控台中,貼上公共金鑰值並按一下新增。

設定環境變數

此處提供的 Terraform 模組可讓您指定文字檔中所需的值來設定環境變數。之後,您就可以尋找檔案,確保所有必要的環境變數均正確設定。

開始之前,請先登入「Oracle Cloud Infrastructure 主控台」。您將使用主控台來尋找下列資訊。

  • 租用 Oracle Cloud Infrastructure ID (OCID)

  • 使用者 OCID

  • 您要使用之 API 簽署金鑰的指紋

  • 區域

  • 隔間 OCID

另請確認您知道 API 簽章金鑰和 SSH 金鑰組儲存在本機系統的位置。

  1. 在本機系統上,瀏覽至 Terraform 模組所在的目錄。
  2. 在文字編輯器中開啟檔案 env-vars.ps1
  3. env-vars 檔案有數個區段。從認證詳細資訊區段開始。
    1. 輸入租用 OCID。您可以在「Oracle Cloud Infrastructure 主控台」底部找到租用 OCID。這是類似於 ocid1.tenancy.oc1。.aaaaa。。。的字串。將這個值貼到 env-vars 檔案中。
    2. 輸入使用者 OCID。若要尋找您的使用者 OCID,請在「Oracle Cloud Infrastructure 主控台」中,按一下識別,然後按一下使用者。系統會顯示使用者清單與使用者 OCID。按一下使用者名稱下方的複製以複製所需的使用者 OCID。將這個值貼到 env-vars 檔案中。
    3. 輸入 API 簽署金鑰指紋。在「Oracle Cloud Infrastructure 主控台」的「使用者」頁面中,按一下使用者以檢視使用者詳細資訊頁面。從「API 金鑰」區段中列出的金鑰複製 API 金鑰指紋。將這個值貼到 env-vars 檔案中。
    4. 輸入本機系統上 API 私密金鑰的完整路徑和檔案名稱。
  4. env-vars 檔案的區域,輸入要建立基礎架構元件的區域。您目前檢視的區域會顯示在「Oracle Cloud Infrastructure 主控台」的頂端。您也可以使用「主控台」來尋找您可以存取的其他區域。
  5. env-vars 檔案的區間段落中,輸入您要建立基礎架構元件之區間的 Ococid。確定您先前指定的使用者屬於您在此指定之區間的必要權限群組。若要尋找 compartment OCID,請移至「Oracle Cloud Infrastructure 主控台」。按一下識別,然後按一下區間。就會顯示區間清單,以及隔間。按一下區間名稱下方的複製,複製所需的隔間。將這個值貼到 env-vars 檔案中。
  6. env-vars 檔案的公用/私密金鑰段落中,輸入 SSH 公用金鑰的完整路徑和檔案名稱,以及您本機系統上的 SSH 私密金鑰。請確定您指定用於基礎主機的公用金鑰和私密金鑰是您使用 PuTTY 建立的金鑰組,而您指定用於其他執行處理的金鑰組則是您使用 ssh-keygen。建立的金鑰組。
  7. 檢查輸入的值是否正確。如果您省略了任何值,系統會在您執行 Terraform 時提示您輸入。若您提供的值不正確,則 Terraform 會發生錯誤。確認所有值均正確無誤後,請儲存並關閉 env-vars 檔案。
  8. 若要設定 env-vars 檔案中指定的環境變數,請啟動 Windows PowerShell,瀏覽至您 Terraform 模組所在的資料夾,然後輸入:env-vars.ps1
    這會執行 env-vars.ps1 檔案,其中會針對目前的階段作業設定此檔案中指定的所有變數。
  9. 若要檢查是否已經設定環境變數,請輸入:dir env:
    這會列出所有環境變數。您可以檢視 TF_VAR 變數,確認其值已如預期般設定。

驗證您的終端表單組態

設定所有必要環境變數後,請確認您已準備執行 Terraform。

  • 啟動 Windows PowerShell 並瀏覽至您 Terraform 模組所在的資料夾。輸入:terraform plan
    此命令的輸出會顯示目前目錄中所有模組之所有組態的執行計畫。此原則說明 Terraform 要採取的動作,以變更目前的基礎架構來符合組態。如果目前沒有建立任何元件,輸出會顯示您執行 terraform apply 時將建立的元件清單。此命令不會建立任何元件,而且如果您只想確認組態成功並且所有必要的認證值都已正確儲存在適當的環境變數中,就可以安全地執行。