關於在 Unix 相似系統上設定 Terraform
若要使用 Terraform 來建立 Oracle Cloud Infrastructure 元件,您必須下載並安裝 Terraform。您也會下載 Terraform 模組,以建立將用來建立所需基礎架構元件的組態檔。
您安裝 Terraform 和儲存 Teraform 模組的系統可以位於企業內部或雲端。為了方便起見,我們將指明本機系統或您的本機主機。
在您執行 Terraform 之前:
-
產生可讓您存取 Compute 執行處理的 SSH 金鑰組
-
產生用來認證 TerraForm 所做之 API 呼叫的 API 簽章金鑰
-
設定 Terraform 用來認證存取與執行其計畫的環境變數
完成這些步驟後,您可以套用 Terraform 組態檔,在 Oracle Cloud Infrastructure 上建立基礎架構元件。
產生供存取以群組為基礎之主機的 SSH 金鑰組
SSH 金鑰組可用來安全地存取在公用子網路中建立的執行處理。您需要在本機主機上產生 SSH 金鑰組。然後,Terraform 模組會將 SSH 公用金鑰新增至基礎主機。當您需要透過公用網際網路連線至基礎主機時,您需要提供 SSH 私密金鑰來認證存取。
您可以使用 ssh-keygen
公用程式來產生 SSH 金鑰組。請勿為您的 SSH 金鑰設定密碼詞組。
產生 SSH 金鑰組以存取其他執行處理
原始主機是用來啟用 SSH 轉送至其他沒有公用 IP 位址且不允許透過公用網際網路存取的執行處理。若要從基礎主機安全存取其他執行處理,您需要使用 SSH 金鑰組,此金鑰組是儲存在私密子網路執行處理的公用金鑰,與儲存在您本機機器上的私密金鑰相符。此 SSH 金鑰組最佳實務不能與用來存取基礎主機的 SSH 金鑰組相同。
在本機主機上使用 ssh-keygen
來產生另一個 SSH 金鑰組。記下儲存此 SSH 金鑰組的位置。
產生 API 簽署金鑰
您必須提供 Privacy Enhanced Mail (PEM) 格式的 RSA 金鑰組,以使用 Oracle Cloud Infrastructure 認證您的 TerraForm 命令檔。請注意,此 API 簽章金鑰與您用來存取執行處理的 SSH 金鑰組不同。您可以使用 OpenSSL
來產生此金鑰組。
- 在您的本位目錄區域中建立隱藏目錄以儲存 PEM 金鑰。輸入:
mkdir ~/.oci
- 使用 OpenSSL 來產生私密金鑰。產生私密金鑰時,請記得指定 2048 個位元或更高的位元。輸入:
openssl genrsa -out ~/.oci/key_name.pem 2048
- 變更私密金鑰的權限,確定只有您可以讀取私密金鑰。輸入:
chmod go-rwx ~/.oci/key_name.pem
- 接著,使用 OpenSSL 產生指定之私密金鑰的公用金鑰。輸入:
openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
使用主控台上傳 API 簽署金鑰
產生 API 簽章金鑰後,您必須在 Oracle Cloud Infrastructure 中上傳關聯使用者的公開金鑰。第一次上傳 API 簽章金鑰時,您必須使用主控台。接下來,您也可以使用 API 來上傳 API 金鑰。
設定環境變數
此處提供的 Terraform 模組可讓您指定文字檔中所需的值來設定環境變數。之後,您就可以尋找檔案,確保所有必要的環境變數均正確設定。
開始之前,請先登入「Oracle Cloud Infrastructure 主控台」。您將使用主控台來尋找下列資訊。
-
租用 Oracle Cloud Infrastructure ID (OCID)
-
使用者 OCID
-
您要使用之 API 簽署金鑰的指紋
-
區域
-
隔間 OCID
另請確認您知道 API 簽章金鑰和 SSH 金鑰組儲存在本機系統的位置。
- 在本機系統上,瀏覽至 Terraform 模組所在的目錄。
- 在文字編輯器中開啟檔案
env-vars
。 env-vars
檔案有四個區段。從認證詳細資訊區段開始。- 輸入租用 OCID。您可以在「Oracle Cloud Infrastructure 主控台」底部找到租用 OCID。這是類似於
ocid1.tenancy.oc1。.aaaaa。。。
的字串。將這個值貼到env-vars
檔案中。 - 輸入使用者 OCID。若要尋找您的使用者 OCID,請在「Oracle Cloud Infrastructure 主控台」中,按一下識別,然後按一下使用者。系統會顯示使用者清單與使用者 OCID。按一下使用者名稱下方的複製以複製所需的使用者 OCID。將這個值貼到
env-vars
檔案中。 - 輸入 API 簽署金鑰指紋。在「Oracle Cloud Infrastructure 主控台」的「使用者」頁面中,按一下使用者以檢視使用者詳細資訊頁面。從「API 金鑰」區段中列出的金鑰複製 API 金鑰指紋。將這個值貼到
env-vars
檔案中。 - 輸入本機系統上 API 私密金鑰的完整路徑和檔案名稱。
- 輸入租用 OCID。您可以在「Oracle Cloud Infrastructure 主控台」底部找到租用 OCID。這是類似於
- 在
env-vars
檔案的區域,輸入要建立基礎架構元件的區域。您目前檢視的區域會顯示在「Oracle Cloud Infrastructure 主控台」的頂端。您也可以使用「主控台」來尋找您可以存取的其他區域。 - 在
env-vars
檔案的區間段落中,輸入您要建立基礎架構元件之區間的 Ococid。確定您先前指定的使用者屬於您在此指定之區間的必要權限群組。若要尋找 compartment OCID,請移至「Oracle Cloud Infrastructure 主控台」。按一下識別,然後按一下區間。就會顯示區間清單,以及隔間。按一下區間名稱下方的複製,複製所需的隔間。將這個值貼到env-vars
檔案中。 - 在
env-vars
檔案的公用/私密金鑰區段中,針對基礎主機和其他執行處理,輸入適當 SSH 公用金鑰和本機系統私密金鑰的完整路徑和檔案名稱。私密金鑰必須是openssh
格式。 - 檢查輸入的值是否正確。如果您省略了任何值,系統會在您執行 Terraform 時提示您輸入。若您提供的值不正確,則 Terraform 會發生錯誤。確認所有值均正確無誤後,請儲存並關閉
env-vars
檔案。 - 若要設定
env-vars
檔案中指定的環境變數,請開啟終端機,並瀏覽至 Terraform 模組所在的目錄。輸入:source。/env-vars