關於使用 Terraform 開發基礎架構元件

您下載的 Terraform 模組包含個別命令檔,可建立和設定各種基礎架構元件。您可以檢視及編輯這些命令檔,瞭解將建立哪些元件以及每個元件的特性。

Terraform 目錄的根層次包含主要組態檔 main.tf,,其參照各種子目錄中的組態檔。此目錄還包含定義「精簡版」組態檔中所使用變數的檔案,或包含 Terraform 提供者、資料資源或輸出相關資訊的檔案。此外,建立安全清單與路由表格的 Terraform 組態檔也位於根層次。

Terraform 目錄包含 modules 目錄。modules 目錄包含下列項目:

  • bastion:用來建立基礎主機。

  • compute:用來建立 UNIX 和 Windows Oracle Cloud Infrastructure Compute 執行處理。

  • dbsystem:用來建立 Oracle Cloud Infrastructure Database 系統。

  • filesystem:用來建立 Oracle Cloud Infrastructure 檔案儲存檔案系統。

  • loadbalancer:用來建立 Oracle Cloud Infrastructure Load Balancing 執行處理。

  • network:用來建立網路資源,例如虛擬雲端網路 (VCN)、子網路、網際網路閘道、服務閘道、動態路由閘道 (DRG) 以及網路位址轉譯 (NAT) 閘道。

關於要建立的基礎架構元件

建立基礎架構元件之前,您必須輸入有關元件類型、數字和分佈的部分輸入。例如,您可以指定要在單一可用性網域或兩個可用性網域中建立您所有的資源、您要在資料庫系統上建立哪些版本和資料庫版本等的應用程式執行處理。

您可以使用 Terraform 目錄之根層級中的 terraform.tfvars 檔案來提供此輸入。在文字編輯器中開啟 terraform.tfvars 檔案,然後輸入必要資訊。請參考根層次目錄中提供的 README,瞭解您可以在此檔案中使用的建議值。

依預設,在兩個可用性網域中建立元件的 Terraform 模組。這是由 terraform.tfvars 檔案中的 AD 變數值所管理。您可以編輯此值,檢視或修改將用來代管您基礎架構元件的可用性網域。如果您想要在單一可用性網域中建立元件,請將 AD 的值設為 terraform.tfvars 檔案中的必要可用性網域1、2、or 3、。如果您想要在兩個可用性網域中建立元件,請指定或修改可用性網域的數目。

若您使用建議的預設值套用 Terraform 組態檔而不做任何變更,會在兩個可用性網域中建立下列基礎架構元件。

  • 名稱為 psftvcn 且 IP 位址範圍為172.16.0.0/16。的 VCN

  • 每個可用性網域中的第六個子網路,八個子網路。每個子網路都有一個/24 CIDR。例如:172.16.4.0/24。每個子網路名稱的字尾代表建立子網路的可用性網域。

    • 應用程式伺服器的專用子網路,名稱為 appsubad1appsubad2

    • Web 伺服器的專用子網路,名稱為 websubad1websubad2

    • 負載平衡器的專用子網路,名稱為 lbsubad1lbsubad2

    • 資料庫系統的專用子網路,名稱為 dbsubad1dbsubad2

    • ElasticSearch 伺服器的專用子網路,名稱為 essubad1essubad2

    • PeopleTools 執行處理的專用子網路,名稱為 toolsssubad1toolssubad2

    • 檔案系統服務的專用子網路,名稱為 fsssubad1fsssubad2

    • 基本主機的公用子網路,名稱為 bassubad1bassubad2

  • 下列是路由表格。terraform.tfvars 檔案中指定的 VCN 標籤會加上每個路由表格名稱的前置碼。

    • 沒有規則的預設路由表格。

    • 專用路由表格 psftvcnpvtrt,,其路由規則可將物件儲存流量路由至服務閘道,以及傳輸至 NAT 執行處理的所有其他流量。

    • 公用路由表格 psftvcnpubrt,,其路由規則可將流量路由至網際網路閘道。

  • 下列安全清單:

    • 預設安全清單。

    • 應用程式伺服器子網路的安全清單,名稱為 AppSecList

    • 作為主機子網路的安全清單 (名稱為 BastionSecList)。

    • 資料庫子網路的安全清單,名稱為 DBSecList

    • ElasticSearch 伺服器子網路的安全清單,名稱為 ESSecList

    • 檔案系統伺服器子網路的安全清單 (名稱為 FSSSecList)。

    • 負載平衡器子網路的安全清單,名稱為 LBSecList

    • PeopleTools 子網路的安全清單,名稱為 PToolsSecList

    • Web 伺服器子網路的安全清單,名稱為 WebSecList

  • 網際網路閘道名稱為 psftvcnigw。terraform.tfvars 檔案中指定的 DNS 標籤會在網際網路閘道的名稱前面加上字首。網際網路閘道會連線網際網路的雲端網路邊緣。從 VCN 流入至 VCN 外部公用 IP 位址,會經由網際網路閘道進入。

  • 動態路由閘道名稱為 psftvcndrg。。在 terraform.tfvars 檔案中指定的 DNS 標籤名稱,會在動態路由閘道的名稱前面加上名稱。動態路由閘道可為不是網際網路的 VCN 與目標之間提供流量的路徑;例如,使用 IPSec VPN 或 Oracle Cloud Infrastructure FastConnect 進入企業內部部署網路的流量,或是使用遠端 VCN 對等互連時,對另一個區域中的 VCN 進行流量。

  • 服務閘道名稱為 psftvcnsvcgtw。。在 terraform.tfvars 檔案中指定的 DNS 標籤名稱,會在服務閘道的名稱前面加上名稱。服務閘道可讓 VCN 存取公用 Oracle Cloud Infrastructure 服務 (例如 Oracle Cloud Infrastructure 物件儲存體),但不會將 VCN 顯示在公用網際網路。

  • 下列 Oracle Cloud Infrastructure Compute 執行處理已分佈在兩個可用性網域中。terraform.tfvars 檔案中指定的環境前置碼會加上每個執行處理的名稱,區域、可用性網域號碼和計數會加上字尾。每個執行處理都有關聯的開機磁碟區。

    • 應用程式伺服器。建立的應用程式伺服器執行處理數目及其形狀由您在 terraform.tfvars 檔案中指定的值決定。

    • 複製主機。

  • 兩個 Oracle Cloud Infrastructure Database 系統,一個在每個可用性網域中。Oracle Cloud Infrastructure Database 系統的名稱、版本、版本和其他特性,是由您在 terraform.tfvars 檔案中指定的值所決定。Oracle Cloud Infrastructure Database 系統是在資料庫子網路 dbsubad1dbsubad2。中建立

  • 會建立一個用於暫存 PeopleSoft 軟體的檔案系統。系統會在檔案系統子網路 fssubad1 中建立檔案。該檔案系統會在所有 Oracle Cloud Infrastructure Compute 執行處理掛載。

  • 兩個負載平衡器,一個在每個可用性網域中。terraform.tfvars 檔案中指定的環境前置碼會加上每個負載平衡器的名稱,區域和計數會加上字尾。負載平衡器位於 Web 伺服器子網路中,websubad1websubad2。也會建立負載平衡器的後端集和監聽器。

使用精簡表單建立基礎架構元件

安裝 Terraform 及 OCI 提供者,並設定本機系統上的環境變數之後,就可以套用 Terraform 模組,在 Oracle Cloud Infrastructure 中建立基礎架構元件。

  1. 在本機系統上,開啟終端機或啟動 Windows PowerShell。瀏覽至您 Terraform 模組所在的目錄。
  2. 輸入:terraform apply
  3. 系統提示您確認此動作時,請輸入 yes。
Terraform 會啟動,以建立在目前目錄的 Terraform 模組中指定的所有元件。輸出顯示正在建立的物件。部分物件 (例如資料庫系統) 可能需要很長的時間才能建立。建立所有元件時,Terraform 會顯示完成訊息。例如:Apply complete!Resources:90 added、0 changed、0 destroyed。

在命令輸出的 Outputs 區段中,Terraform 會顯示建立之執行處理的公用和專用 IP 位址。記下您想要連線之執行處理的 IP 位址。

如果發生任何錯誤,您可以修正這些錯誤,然後再次執行 terraform apply。請確定您是第一次在執行此命令的相同目錄中重新執行此命令。表單會檢查元件的目前狀態,並建立不存在的元件。不過請注意,如果您在不同目錄或具有相同 Terraform 模組的其他本機系統執行 Terraform,Terraform 會將此處理為全新的設定,並建立各種組態檔中指定的所有資源。若要在不同的目錄或本機系統中執行 Terraform 以管理現有資源,請將現有目錄的 Terraform 狀態檔複製到新目錄或系統。不過,一般而言,建議您不要在一個系統或目錄中使用 Terraform 來管理由其他系統或目錄中 Terraform 所建立的元件。