啟動設定、設定及移除資源

使用 Terraform 部署、變更及移除您在雲端的資源。

關於 Terraform 狀態檔案

Terraform 儲存可追蹤您管理之基礎架構資源的態資訊、將部署的資源對應至您的組態、追蹤描述資料,以及提升大型基礎架構部署效能。

依照預設,terraform.tfstate 檔案會儲存在本機主機上。當多個使用者需要建立和毀棄在指定組態中定義的資源時,並不會在 IT 環境中最佳化此預設行為。若要控制在多個使用者環境中部署及管理資源,請將 Terraform 狀態檔案儲存於 Oracle Cloud Infrastructure Object Storage,並在所有使用者之間共用狀態檔案及鎖定檔案。

請參閱使用 Terraform 狀態檔案的物件儲存

建立資源

設定 terraform.tfvars 檔案中的變數之後,請使用 Terraform CLI 部署定義於 Terraform 組態中的資源。

開始之前,請先確定您的本機機器具備網際網路存取權。如果您的本機機器受到防火牆保護,請使用適當的代理以允許 Terraform 聯繫網際網路。
  1. 在您安裝 Terraform 的電腦上,移至包含 terraform.tfvars 檔案的目錄。
  2. 執行下列命令以起始 Terraform:
    terraform init
    命令會下載 oci 提供者 Plugin,並設定供 Terraform 使用的目錄。
  3. 檢查組態的語法是否沒有錯誤:
    terraform validate
  4. 如果有語法錯誤,請修正錯誤,然後重複上一個步驟。
    若要除錯問題,您可以設定記錄日誌:
    • 使用 TF_LOG 環境變數來設定日誌層次。支援的日誌層次包括 TRACEDEBUGINFOWARNERRORTRACE 層次是最詳細的層次。
    • 使用 TF_LOG_PATH 環境變數來設定日誌檔路徑。
  5. 複查組態中定義的資源。
    terraform plan
    輸出會顯示套用此組態時所執行之所有動作的詳細資訊,以及下列範例所示的摘要。
    Plan: 8 to add, 0 to change, 0 to destroy.

    注意:

    訊息中的數字 8 即為一個範例。實際數字取決於您在 Terraform 組態中定義的設定。
  6. 若要進行任何變更,請編輯組態、驗證並複查修訂的計畫。
  7. 建立資源:
    terraform apply
  8. 在提示 Do you want to perform these actions? 時,輸入
    由於 Terraform 建立了每個資源,因此會顯示作業的狀態。

    當建立所有資源時,將會顯示訊息 Apply complete,以及新增、變更和毀棄的資源數目,如下列範例所示。

Apply complete! Resources: 33 added, 0 changed, 0 destroyed.

Outputs:

admin_private_ip = 10.0.1.10
bastion_public_ip = 203.0.113.101
kubeconfig = export KUBECONFIG=generated/kubeconfig
ocirtoken = <sensitive>
ssh_to_admin = ssh -i /home/joe/.ssh/id_rsa -J opc@203.0.113.101 opc@10.0.1.10
ssh_to_bastion = ssh -i /home/joe/.ssh/id_rsa opc@203.0.113.101
  • kubeconfig 輸出會顯示您可用來在本機主機上設定 KUBECONFIG 環境變數的命令。若要從本機主機使用 kubectl CLI 來管理 Kubernetes 叢集,請執行此命令。命令會將 KUBECONFIG 設為檔案 generated/kubeconfig,其 Terraform 會在套用組態時建立。
  • ssh_to_admin 輸出會顯示可用來連線至管理主機的 ssh 命令。
  • ssh_to_bastion 輸出會顯示可用來連線至置物主機的 ssh 命令。

注意:

您可以執行 terraform output 命令,隨時檢視此 Terraform 輸出
您在 Oracle Cloud 的 Kubernetes 拓樸已就緒。您現在可以部署容器化應用程式。

允許管理主機管理資源

若要允許管理主機管理區間中的資源,您可以將它指定為執行處理主要項目若您想從管理主機執行 CLI 命令或進行 API 呼叫來管理拓樸中的資源,請使用此功能。

指定為執行處理主要項目的運算執行處理會有自己唯一的識別。它可以使用自動建立並指派給執行處理的憑證進行認證。憑證會定期循環。您不需要將證明資料分送給您的管理主機或旋轉它們。

注意:

任何可使用 SSH 連線計算執行處理的使用者,都會繼承授與執行處理的執行處理主要項目權限。決定是否將管理主機指定為執行處理主要項目時,請考慮此選項。您可以在不影響管理主機的情況下,隨時關閉或開啟此功能。
  • 若要將管理主機指定為執行處理主要項目,請在 terraform.tfvars 中設定下列項目,然後執行 terraform apply

    admin_instance_principal = true

    管理主機會成為動態群組的成員,並建立原則敘述句以允許動態群組管理區間中的所有資源。

  • 若要從管理主機撤回執行處理主要項目權限,請在 terraform.tfvars 中設定下列權限,然後執行 terraform apply

    admin_instance_principal = false

啟用或停用基本主機的通知

您可以使用「Oracle Cloud Infrastructure 通知」服務在套用更新時,或 Oracle Ksplice 偵測到已知的爆炸嘗試時,接收來自消耗主機的狀態訊息。

注意:

只有當您使用預設的 Oracle Autonomous Linux 映像檔時,此解決方案中的 Terraform 程式碼才會設定通知。
  • 若要啟用基礎主機的通知,請在 terraform.tfvars 中設定下列變數:

    bastion_notification_enabled = true
    bastion_notification_endpoint = "email_address"
    bastion_notification_protocol = "EMAIL"
    bastion_notification_topic = "topic_name"

    以下是含有定義之通知相關變數的 terraform.tfvars 範例。

    bastion_notification_enabled = true
    bastion_notification_endpoint = "joe@example.com"
    bastion_notification_protocol = "EMAIL"
    bastion_notification_topic = "bastion"
  • 如果已經建立基礎主機並想要立即啟用通知,請設定這些變數,然後再次執行 terraform apply
    • 已定義必要的原則以允許主機發布通知。
    • 系統會建立通知主題,而且您指定的電子郵件地址已訂閱主題。
    • 已設定防止主機傳送通知。

    建立資源之後,您將會收到電子郵件提示您確認訂閱。

  • 若要停用通知,請在 terraform.tfvars 中設定下列項目,然後執行 terraform apply

    bastion_notification_enabled = false
    admin_notification_enabled = false

移除所有資源

  1. 在您安裝 Terraform 的電腦上,移至包含 terraform.tfvars 檔案的目錄。
  2. 輸入下列命令:
    terraform destroy
    Terraform 顯示將毀棄之資源的詳細資訊,如下列範例所示:
    Plan: 0 to add, 0 to change, 12 to destroy.
  3. 在提示 Do you really want to destroy all resources? 時,輸入
    由於 Terraform 移除每個資源,因此會顯示作業的狀態。
    移除所有資源後,就會顯示訊息 Destroy complete,以及損毀的資源數目,如下列範例所示:
    Destroy complete! Resources: 12 destroyed.