Konfigurationen anwenden

Nachdem der Oracle Cloud Infrastructure-(OCI-)Terraform-Provider installiert und konfiguriert wurde und Sie Terraform-Konfigurationen mit dem Provider und einer Ressource oder Datenquelle erstellt haben, können Sie Terraform in Ihrer OCI-Infrastruktur ausführen.

Tipp

In den Tutorials finden Sie Schritt-für-Schritt-Anweisungen und Beispiele.

Terraform initialisieren

Führen Sie den folgenden Befehl aus einem Verzeichnis aus, das Ihre Terraform-Konfigurationsdateien enthält, um Terraform zu initialisieren:

terraform init

Beispielausgabe:

Initializing the backend...

Initializing provider plugins...
- Finding latest version of hashicorp/oci...
- Installing hashicorp/oci v3.96.0...
- Installed hashicorp/oci v3.96.0 (signed by HashiCorp)

The following providers do not have any version constraints in configuration,
so the latest version was installed.
...
* hashicorp/oci: version = "~> 3.96.0"

Terraform has been successfully initialized!

Wenn der Befehl zu einem Fehler führt, prüfen Sie, ob der OCI-Terraform-Provider korrekt konfiguriert ist.

Änderungen prüfen

Ohne Änderungen an den vorhandenen OCI-Ressourcen vorzunehmen, kann Terraform eine Liste der Änderungen zurückgeben, die basierend auf Ihren Konfigurationen vorgenommen werden, wenn Sie diese anwenden. Diese Liste wird als Ausführungsplan bezeichnet. Führen Sie den folgenden Befehl aus, um den Ausführungsplan anzuzeigen:

terraform plan

Beispielausgabe:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # oci_identity_compartment.tf-compartment will be created
  + resource "oci_identity_compartment" "tf-compartment" {
      + compartment_id = "exampleuniqueID"
      + defined_tags   = (known after apply)
      + description    = "Compartment for Terraform resources."
      + freeform_tags  = (known after apply)
      + id             = (known after apply)
      + inactive_state = (known after apply)
      + is_accessible  = (known after apply)
      + name           = <your-compartment-name>
      + state          = (known after apply)
      + time_created   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Prüfen Sie den Plan, und stellen Sie sicher, dass die im Plan angezeigten Änderungen Ihren Erwartungen entsprechen.

Zerstörende Änderungen

Einige OCI-Ressourcen verfügen über Eigenschaften, die nicht von Terraform aktualisiert werden können, ohne die vorhandene Ressource zu zerstören und mit dem neuen Eigenschaftswert neu zu erstellen. Wenn Sie terraform plan ausführen und versuchen, eine nicht aktualisierbare Eigenschaft zu ändern, gibt Terraform an, welche Ressource ersetzt wird und welche Eigenschaften nicht aktualisiert werden können.

Beispiel: Im folgenden Ausführungsplan werden einer Ressource, die gelöscht und neu erstellt wird, die Zeichen -/+ vorangestellt. Außerdem wird der Kommentar # forces replacement an die Eigenschaft anhängt, die nicht aktualisiert werden kann:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement
 
Terraform will perform the following actions:
 
  # oci_core_vcn.vcn must be replaced
-/+ resource "oci_core_vcn" "vcn" {
      ~ cidr_block               = "10.0.0.0/16" -> "11.0.0.0/16" # forces replacement
      ~ cidr_blocks              = [
          - "10.0.0.0/16",
        ] -> (known after apply)
        compartment_id           = "ocid1.compartment.oc1..exampleuniqueID"
      ~ default_dhcp_options_id  = "ocid1.dhcpoptions.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ default_route_table_id   = "ocid1.routetable.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ default_security_list_id = "ocid1.securitylist.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ defined_tags             = {} -> (known after apply)
        display_name             = "vcn"
        dns_label                = "vcn"
      ~ freeform_tags            = {} -> (known after apply)
      ~ id                       = "ocid1.vcn.oc1.phx.exampleuniqueID" -> (known after apply)
      + ipv6cidr_block           = (known after apply)
      + ipv6public_cidr_block    = (known after apply)
      + is_ipv6enabled           = (known after apply)
      ~ state                    = "AVAILABLE" -> (known after apply)
      ~ time_created             = "2021-01-25 20:54:53.255 +0000 UTC" -> (known after apply)
      ~ vcn_domain_name          = "vcn.oraclevcn.com" -> (known after apply)
    }
 
Plan: 1 to add, 0 to change, 1 to destroy.
Achtung

Ein erzwungenes Löschen und erneutes Erstellen einer Ressource kann auch dazu führen, dass eine übergeordnete Ressource ersetzt wird. Führen Sie immer terraform plan aus, bevor Sie terraform apply ausführen, um zu ermitteln, welche Ressourcen betroffen sind.

Die vollständige Referenz der unterstützten Ressourcen und Datenquellen des OCI-Terraform-Providers enthält Details zu Verwendung, Argumenten und Attributen. Die vollständige Referenz ist unter docs.oracle.com und Terraform Registry verfügbar.

Die Referenz gibt an, welche Eigenschaften aktualisierbar sind.

Änderungen anwenden

Sobald Sie sicher sind, dass Ihre Konfigurationen zu den erwarteten Änderungen führen, können Sie die Terraform-Konfigurationen anwenden, indem Sie den folgenden Befehl ausführen:

terraform apply

Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit die Ressource erstellt wird. Nachdem Sie den apply-Befehl ausgeführt haben, wird die Ausgabe im Terminal angezeigt. Beispielausgabe:

oci_identity_compartment.tf-compartment: Creating...
oci_identity_compartment.tf-compartment: Creation complete after 9s [id=exampleuniqueID]

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

Outputs:

compartment-OCID = ocid1.compartment.exampleuniqueID
compartment-name = <your-compartment-name>
Achtung

Wenn Sie Ressourcen, die Sie mit Terraform verwalten, außerhalb von Terraform ändern, werden diese Änderungen beim nächsten Mal überschrieben, wenn Sie mit Terraform Konfigurationen anwenden. Fügen Sie den Parameter ignore_changes zu Ressourcen in der Konfigurationsdatei hinzu, die nicht überschrieben werden sollen.