Introducción

Este ejemplo proporciona una guía completa de las tareas necesarias para crear y desplegar una instancia informática de Oracle Cloud Infrastructure mediante el gestor de recursos.

Esta página le ayuda a empezar a utilizar el gestor de recursos. Utilice esta guía completa de tareas para crear y desplegar una instancia informática de Oracle Cloud Infrastructure mediante una configuración de Terraform predefinida o su propia configuración de Terraform. Para obtener una breve introducción sobre el gesto de recursos, consulte Visión general del gestor de recursos.

Aspectos destacados

Además de proporcionar una configuración de Terraform predefinida para crear una instancia de Compute, este tutorial proporciona ejemplos que demuestran cómo escribir una configuración de Terraform. Cualquiera que sea la configuración que utilice (preconfigurada o propia), el gestor de recursos utiliza Terraform para aprovisionar los recursos definidos. Los recursos se organizan en pilas, que puede crear y aprovisionar mediante trabajos.

En esta guía, se tratan las siguientes tareas:

  • Seleccione o cree una configuración de Terraform.
  • Aprovisionar la infraestructura:
    • Cree una pila en la que provisionar la infraestructura.
    • Ejecute un trabajo de planificación en la pila, que analiza la configuración y crea un plan de ejecución.
    • Revise el plan de ejecución generado.
    • Ejecute un trabajo de aplicación en su pila, que aprovisione sus recursos. El trabajo de aplicación sigue el plan de ejecución, que se basa en la configuración de Terraform.
    • Revise la infraestructura resultante.
  • Opcionalmente, aprovisione la infraestructura en más entornos con la misma configuración de Terraform.

Antes de empezar

Asegúrese de que ha instalado, obtenido o creado los requisitos necesarios:

  • Un arrendamiento de Oracle Cloud Infrastructure para cada entorno en el que desee aprovisionar recursos. Por ejemplo, puede aprovisionar los recursos definidos en una configuración de Terraform para entornos de desarrollo, temporal y producción.
    Nota

    Es una mejor práctica localizar cada entorno en su propio arrendamiento.
  • El OCID  para el compartimento en el que desea crear su pila.
  • Una cuenta de usuario que incluya lo siguiente:
  • Si desea usar la CLI de Oracle Cloud Infrastructure, instale y configure primero la CLI. Consulte Inicio rápido y Configuración de CLI

Tarea 1a: Selección de una configuración de Terraform predefinida

Puede seleccionar la plantilla de la instancia informática con su configuración de Terraform predefinida en lugar de escribir su propia configuración. Estos pasos le guiarán a través del proceso de creación de pila.

  1. Haga clic en el siguiente enlace para iniciar la página Crear pila con la plantilla de instancia informática ya seleccionada.

    Pila de inicio con plantilla de instancia informática

  2. En la página Crear pila, introduzca un nombre para la nueva pila (o acepte el nombre por defecto proporcionado. Evite introducir información confidencial.
  3. En el desplegable Crear en compartimento, seleccione el compartimento en el que desea crear la pila.

    Por defecto, se define un compartimento desde el ámbito de lista.

  4. Haga clic en Siguiente.

    En el panel Configurar variables se muestran variables de la configuración de Terraform.

  5. Revise las variables y realice los cambios necesarios.

    Importante

    No agregue la clave privada ni otra información confidencial a las variables de configuración.
  6. Haga clic en Siguiente.
  7. En el panel Ver, verifique la configuración de la pila.

    Para este tutorial, deje Ejecutar aplicación en blanco. (Utilice esta opción para aprovisionar automáticamente la infraestructura cuando se cree la pila).

  8. Haga clic en Crear para crear una pila.

    Aparece la página de detalles de pila para la nueva pila.

    Felicidades. Ha creado una pila con la configuración de Terraform predefinida desde la plantilla de instancia informática. El siguiente paso es aprovisionar la infraestructura.

Tarea 1b: Creación de su propia configuración de Terraform

Si no ha seleccionado una configuración de Terraform predefinida, siga estos pasos para escribir la suya propia.

Una configuración de Terraform es un archivo que codifica la infraestructura. La configuración define al proveedor de Terraform, los recursos que desea aprovisionar, las variables y las instrucciones específicas para el aprovisionamiento de los recursos.

Esta página le guiará por la selección de la plantilla de instancia informática con su configuración de Terraform predefinida o bien por la escritura de su propia configuración utilizando varios archivos .tf de un archivo .zip.

Para obtener más información sobre la escritura de configuraciones para su uso con Resource Manager, consulte Configuraciones de Terraform para Resource Manager y Configuración de Terraform.

Atención

No proporcione credenciales de usuario ni otra información confidencial en la configuración de Terraform.
Creación de un proveedor de Oracle Cloud Infrastructure

El siguiente ejemplo de código crea un proveedor básico de Terraform de Oracle Cloud Infrastructure. Puede proporcionar valores como variables que se definen en un archivo de variables o en el archivo (.tf) de definición del proveedor. Para obtener más información, consulte Configuración del proveedor.

provider "oci" {
  region = "${var.region}"
}
Definición de variables

Defina las variables que desea utilizar al aprovisionar los recursos. Las mejores prácticas consisten en crear un archivo de "variables" en el paquete de configuración que cargue. A continuación, se muestra un ejemplo de un archivo de configuración denominado variables.tf. Para obtener más información sobre el uso de variables, consulte Variables de entrada. Consulte también Configuración de variables de entrada.


variable "compartment_ocid" {
	default = "ocid1.compartment.oc1..uniqueid"
}

variable "region" {
	default = "us-phoenix-1"
}

variable "InstanceImageOCID" {
  type = "map"
  
  default = {
    // See https://docs.cloud.oracle.com/images/
    // Platform image "Oracle-Linux-7.5-2018.10.16-0"
    "eu-frankfurt-1" = "ocid1.image.oc1.eu-frankfurt-1.aaaaaaaaitzn6tdyjer7jl34h2ujz74jwy5nkbukbh55ekp6oyzwrtfa4zma"
    "uk-london-1" = "ocid1.image.oc1.uk-london-1.aaaaaaaa32voyikkkzfxyo4xbdmadc2dmvorfxxgdhpnk6dw64fa3l4jh7wa"
    "us-ashburn-1" = "ocid1.image.oc1.iad.aaaaaaaageeenzyuxgia726xur4ztaoxbxyjlxogdhreu3ngfj2gji3bayda"
    "us-phoenix-1" = "ocid1.image.oc1.phx.aaaaaaaaoqj42sokaoh42l76wsyhn3k2beuntrh5maj3gmgmzeyr55zzrwwa"
  }
}


variable "ssh_public_key" {
	default = "ssh-rsa <public_key_value>"
}

# Defines the number of instances to deploy
variable "NumInstances" {
    default = "1"
}

variable "InstanceShape" {
    default = "VM.Standard2.1"
}

# Specifies the Availability Domain
variable "localAD" {
    default = "<AD_name>"
}

Para obtener más información sobre las variables declaradas en los ejemplos anteriores, consulte lo siguiente:

Definición de un documento de esquema (opcional)

Con un documento de esquema, puede reutilizar una configuración de Terraform sin editar en entornos de desarrollo, temporales y producción. El gestor de recursos solicita valores de variables al crear una pila con una configuración de Terraform que incluya un documento de esquema.

Se recomiendan documentos de esquema para las configuraciones de Terraform al utilizar el gestor de recursos. La inclusión de un documento de esquema permite ampliar páginas en la consola de Oracle Cloud Infrastructure. Facilite la entrada de variables en la página Crear pila navegando por los controles de clave SSH y nombrando, agrupando, rellenando previamente valores de forma dinámica, etc. Defina el texto en el separador Información de aplicación de la página Detalles de pila que se abre para una pila creada.

A continuación, se muestra el contenido de un documento de esquema de ejemplo (schema.yaml) que abarca los detalles básicos de este escenario.

Nota

Para reutilizar fácilmente este documento de esquema, especifique los valores por defecto para cada variable.
locale: "en"

variableGroups:
  - title: "Destination"
    variables:
      - compartment_ocid
      - ${region}
      - ${localAD}
  - title: "Instance Details"
    variables:
      - ${numInstances}
      - ${instanceImageOCID}
      - ${instanceShape}
  - title: "SSH Public Key"
    variables:
      - ${ssh_public_key}

variables:
  compartment_ocid:
    type: oci:identity:compartment:id
    required: true
    title: Compartment OCID

  region:
    type: oci:identity:region:name
    required: true
    title: Region

  localAD:
    type: oci:identity:availabilitydomain:name
    required: true
    title: Availability Domain
    dependsOn:
      compartmentId: compartment_ocid

  numInstances:
    type: integer
    required: true
    title: Number of Instances
    minimum: 1
    maximum: 10
    multipleOf: 1

  instanceImageOCID:
    type: oci:core:image:id
    required: true
    title: Instance Image OCID
    dependsOn:
      compartmentId: compartment_ocid

  instanceShape:
    type: oci:core:instanceshape:name
    required: true
    title: Instance Shape
    default: "VM.Standard.E2.1.Micro"
    dependsOn:
      compartmentId: compartment_ocid

  ssh_public_key:
    type: oci:core:ssh:publickey
    required: true
    title: SSH Public Key
Creación de una red virtual en la nube (VCN)

En el siguiente ejemplo de código, se crea una red virtual en la nube (VCN) de Oracle Cloud Infrastructure denominada "ExampleVCN".

resource "oci_core_virtual_network" "ExampleVCN" {
  cidr_block = "10.1.0.0/16"
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFExampleVCN"
  dns_label = "tfexamplevcn"
}
Creación de una subred en la VCN

El siguiente ejemplo de código crea una subred denominada "ExampleSubnet" en la VCN definida en el ejemplo de código anterior.

resource "oci_core_subnet" "ExampleSubnet" {
  availability_domain = "${var.localAD}"
  cidr_block = "10.1.20.0/24"
  display_name = "TFExampleSubnet"
  dns_label = "tfexamplesubnet"
  security_list_ids = ["${oci_core_virtual_network.ExampleVCN.default_security_list_id}"]
  compartment_id = "${var.compartment_ocid}"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
  route_table_id = "${oci_core_route_table.ExampleRT.id}"
  dhcp_options_id = "${oci_core_virtual_network.ExampleVCN.default_dhcp_options_id}"
}
Creación de un gateway de Internet

El siguiente ejemplo de código crea un gateway de Internet denominado "ExampleIG" en la VCN que creamos.

resource "oci_core_internet_gateway" "ExampleIG" {
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFExampleIG"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
}
Creación de tablas de rutas principales

En el siguiente ejemplo de código se crea una tabla de rutas principales de Oracle Cloud Infrastructure en la VCN y, a continuación, se aplican dos reglas de rutas.

resource "oci_core_route_table" "ExampleRT" {
  compartment_id = "${var.compartment_ocid}"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
  display_name = "TFExampleRouteTable"
  route_rules {
    cidr_block = "0.0.0.0/0"
    network_entity_id = "${oci_core_internet_gateway.ExampleIG.id}"
  }
}
Creación de una instancia de recursos informáticos

En el siguiente ejemplo de código ampliado se crea una instancia informática de Oracle Cloud Infrastructure. El código también hace referencia a la imagen en la que se crea la instancia informática, define el tamaño del volumen de inicio, agrega metadatos esenciales y aplica etiquetas de formato libre y definidas.

resource "oci_core_instance" "TFInstance" {
  count = "${var.NumInstances}"
  availability_domain = "${var.localAD}"
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFInstance${count.index}"
  shape = "${var.InstanceShape}"
 
  create_vnic_details {
    subnet_id = "${oci_core_subnet.ExampleSubnet.id}"
    display_name = "primaryvnic"
    assign_public_ip = true
    hostname_label = "tfexampleinstance${count.index}"
  }
 
  source_details {
    source_type = "image"
    source_id = "${var.InstanceImageOCID[var.region]}"
 
    # Apply this to set the size of the boot volume that's created for this instance.
    # Otherwise, the default boot volume size of the image is used.
    # This should only be specified when source_type is set to "image".
    #boot_volume_size_in_gbs = "60"
  }


    # Apply the following flag only if you wish to preserve the attached boot volume upon destroying this instance
  # Setting this and destroying the instance will result in a boot volume that should be managed outside of this config.
  # When changing this value, make sure to run 'terraform apply' so that it takes effect before the resource is destroyed.
  #preserve_boot_volume = true
 
  metadata = {
    ssh_authorized_keys = "${var.ssh_public_key}"
  
  }
  timeouts {
    create = "60m"
  }
}
Finalización de la configuración

Asegúrese de que todos los archivos de configuración están en un único directorio. Puede almacenar el archivo de configuración de Terraform localmente o en un sistema de control de código fuente. Para obtener más información sobre el almacenamiento del archivo en un sistema de control de código fuente, consulte Gestión de proveedores de origen de configuración. Independientemente de dónde esté almacenado el archivo, puede seleccionarlo cuando cree una pila mediante la CLI o la consola.

Importante

Asegúrese de que el archivo de configuración de Terraform es válido. Consulte Creación de configuraciones y Configuraciones de Terraform para el gestor de recursos.

Tarea 2: Aprovisionamiento de la infraestructura

Utilice la configuración de Terraform para crear y desplegar la infraestructura realizando las siguientes acciones:

  1. Si ha creado su propia configuración de Terraform, siga estos pasos para crear una pila en un compartimento de arrendamiento que elija. (Si ha seleccionado una configuración predefinida, omita este paso).

    Para los orígenes de configuración de Terraform soportados con el gestor de recursos, consulte Dónde almacenar las configuraciones de Terraform.

    Una pila es una recopilación de recursos sobre los que puede actuar como grupo. Todos los recursos que especifique en la configuración se aprovisionarán en la pila que cree.

    Puede crear una pila a partir de un archivo remoto versionado en un sistema de control de código de origen (como Git), un bloque de Object Storage o un archivo .zip de acceso local que cargue. A continuación, se muestran instrucciones para un archivo local.

    Para crear una pila a partir del archivo .zip (consola)
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Resource Manager, haga clic en Pilas.
    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

    3. Haga clic en Crear pila.

      Se abre la página Crear pila, con el separador Información de pila seleccionado.

    4. En la página Crear pila, en Seleccionar el origen de la configuración de Terraform, seleccione Mi configuración.

    5. En Configuración de pila, haga clic en . Archivo zip y agregue la configuración de Terraform.

      Puede arrastrar y soltar el archivo .zip de configuración de Terraform en el control o haga clic en Buscar y vaya a la ubicación del archivo .zip.

      También puede almacenar la configuración de forma remota. Por ejemplo, almacene la configuración en Git o en un bloque de Object Storage.

      La página se rellena con la información incluida en la configuración de Terraform.

    6. Introduzca valores para los campos restantes.
      Nombre Descripción
      Usar proveedores personalizados Seleccione esta opción para utilizar proveedores personalizados y, a continuación, seleccione el cubo que contiene los proveedores personalizados.
      Nombre Nombre de pila. Puede aceptar el nombre por defecto proporcionado. Evite introducir información confidencial.
      Descripción Descripción de pila (opcional).
      Crear en compartimento Compartimento en el que desea crear la pila. Por defecto, se define un compartimento desde el ámbito de lista.
      Versión de Terraform Versión que desea para la configuración de Terraform.
      Etiquetas Opcionalmente, aplique etiquetas a la pila.
    7. Haga clic en Siguiente.

      En el panel Configurar variables se muestran variables de la configuración de Terraform.

    8. Revise las variables y cambie según sea necesario.

      No agregue la clave privada ni ninguna otra información confidencial a las variables de configuración.
    9. Haga clic en Siguiente.

    10. En el panel Ver, verifique la configuración de la pila.

    11. Para aprovisionar recursos automáticamente al crear la pila, seleccione Ejecutar aplicación.

    12. Haga clic en Crear para crear la pila.

      Se crea la pila y se abre la página Detalles de pila.

      Si ha seleccionado Ejecutar aplicación, el gestor de recursos ejecuta la acción de aplicación en la nueva pila.

    Para crear una pila a partir del archivo .zip (CLI)

    Utilice el comando relacionado con la ubicación del archivo.

    Para crear una pila a partir de un archivo remoto versionado

    Utilice el comando oci resource-manager stack create-from-git-provider y los parámetros necesarios para crear una pila a partir de Git.

    oci resource-manager stack create-from-git-provider [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Ejemplo de solicitud
    oci resource-manager stack create-from-git-provider --compartment-id ocid1.tenancy.oc1..uniqueid --config-source-configuration-source-provider-id ocid.ormconfigsourceprovider.oc1..uniqueid --config-source-repository-url https://github.com/user/repo.git --config-source-branch-name mybranch --display-name "My Stack from Git" --description "My Test" --variables file://variables.json --working-directory ""
    Para crear una pila a partir del archivo .zip
    Nota

    En Windows, asegúrese de que el archivo zip y los archivos variables.json estén en el mismo directorio desde el que está ejecutando la CLI. Actualmente, la CLI tiene una limitación en Windows que evita el manejo correcto de los archivos si uno está en un subdirectorio.

    Utilice el comando oci resource-manager stack create y los parámetros necesarios para crear una pila a partir de un archivo zip local.

    oci resource-manager stack create [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Ejemplo de solicitud
    oci resource-manager stack create --compartment-id ocid1.tenancy.oc1..uniqueid --config-source vcn.zip --variables file://variables.json --display-name "My Example Stack" --description "My Tutorial to Create a VCN" --working-directory ""
    Ejemplo de respuesta
    {
      "data": {
        config-source": 
        {
          "working-directory": null,
          "config-source-type": "ZIP_UPLOAD"
        },
        "defined-tags": {},
        "description": "My Tutorial to Create a VCN",
        "display-name": "My Example Stack",
        "freeform-tags": {},
        "id": "ocid1.ormstack.oc1..uniqueid",
        "lifecycle-state": "ACTIVE",
        "time-created": "2019-04-03T18:26:56.299000+00:00",
        "variables": 
        {
          "compartment_ocid": "ocid1.compartment.oc1..uniqueid", 
          "region": "us-phoenix-1"
        }
      }
    }
  2. Genere un plan de ejecución.

    El trabajo de planificación analiza la configuración para crear un "plan de ejecución", que es una representación paso a paso del despliegue planificado en entradas del log de trabajos. Una vez terminado el trabajo de planificación, puede evaluar el plan de ejecución visualizando las entradas de log del trabajo para confirmar que realiza las operaciones esperadas y en la secuencia prevista.

    Nota

    Puede omitir este paso si ha seleccionado Ejecutar aplicación al crear la pila. En este caso, los recursos ya se han aprovisionado.
    Para ejecutar un trabajo de planificación (Consola)
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Resource Manager, haga clic en Pilas.
    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

    3. Haga clic en el nombre de la pila que desea.

      Se abre la página Detalles de pila.

    4. Haga clic en Plan.

    5. En el panel Plan, revise el Nombre y, opcionalmente, cámbielo.

    6. Haga clic en Plan.

      Se crea el trabajo de plan. El nuevo trabajo se muestra en Trabajos.

      Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

    Para ejecutar un trabajo de planificación (CLI)

    Utilice el comando oci resource-manager job create-plan-job y los parámetros necesarios para ejecutar un trabajo de plan.

    oci resource-manager job create-plan-job [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

  3. Revise el plan de ejecución para confirmar que representa las intenciones.

    El plan de ejecución se representa en el log para el trabajo de planificación ejecutado anteriormente.

    Nota

    Puede omitir este paso si ha seleccionado Ejecutar aplicación al crear la pila. En este caso, los recursos ya se han aprovisionado.
    Para revisar un plan de ejecución (el log del trabajo de planificación) (Consola)
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Gestor de recursos, haga clic en Trabajos.

      También puede acceder a los trabajos desde una página de detalles de pila. Haga clic en Pilas y, a continuación, en el nombre de la pila que desee.

    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

    3. Haga clic en el nombre del trabajo de planificación que ha ejecutado.

      Se abre la página Detalles del trabajo. Los logs están visibles (en la sección Logs en Recursos).

      Para los trabajos de planificación, el archivo log es el plan de ejecución. Consulte el archivo log del trabajo de planificación y anote los campos de "mensaje" en la secuencia de entradas de log del archivo log. Estos valores representan la secuencia de operaciones especificada en la configuración.

    4. (Opcional) Haga clic en Descargar logs (en la sección Logs en Recursos).

    Si es necesario realizar cambios, actualice la pila para utilizar una configuración revisada y, a continuación, ejecute otro trabajo de planificación para obtener un plan de ejecución actualizado.

    Para revisar un plan de ejecución (log del trabajo del planificación) (CLI)

    Utilice el comando oci resource-manager job get-job-logs y los parámetros necesarios para obtener logs para un trabajo como una lista paginada de entradas.

    oci resource-manager job get-job-logs [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Ejemplo de respuesta para un trabajo de plan

    El comando devuelve objetos JSON que describen las entradas log. Cada objeto tiene un miembro de mensaje con una propiedad que muestra una línea del plan de ejecución. En este ejemplo, el trabajo Plan crea una única red virtual en la nube (VCN); los miembros restantes muestran detalles sobre la VCN.

    ...
                    {
                    "level": "INFO",
                    "message": "Terraform will perform the following actions:",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "+ oci_core_virtual_network.vcn1",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "id: <computed>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "cidr_block:  \"10.0.0.0/16\",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "compartment_id:  \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "default_dhcp_options_id:  <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "      default_route_table_id: <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "      default_security_list_id: <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    ...
                  

    Si es necesario realizar cambios, actualice la pila para utilizar una configuración revisada y, a continuación, ejecute otro trabajo de planificación para obtener un plan de ejecución actualizado.

  4. Aprovisione sus recursos ejecutando un trabajo de aplicación en el plan de ejecución.

    Cuando esté satisfecho con el plan de ejecución, estará listo para trabajar con el aprovisionamiento de la pila con los recursos que haya definido. El trabajo de aplicación toma el plan de ejecución y lo "aplica" a la pila. El resultado es una pila totalmente aprovisionada.

    Nota

    Puede omitir este paso si ha seleccionado Ejecutar aplicación al crear la pila. En este caso, los recursos ya se han aprovisionado.
    Para ejecutar un trabajo de aplicación (Consola)
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Resource Manager, haga clic en Pilas.

    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

    3. Haga clic en el nombre de la pila que ha creado.

      Se abre la página Detalles de pila.

    4. Haga clic en Solicitar.

    5. (Opcional) En el panel Aplicar, revise el nombre del trabajo de aplicación y otros valores y actualice si es necesario.

    6. Haga clic en Solicitar.

      Se crea el trabajo de aplicación. El nuevo trabajo se muestra en Trabajos.

      Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

      Para confirmar la existencia de recursos aprovisionados recientemente, inspeccione los recursos en el compartimento.

    Para ejecutar un trabajo de aplicación (CLI)

    Utilice el comando oci resource-manager job create-apply-job y los parámetros necesarios para ejecutar un trabajo de aplicación.

    oci resource-manager job create-apply-job [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Ejemplos

    Ejemplo 1: hacer referencia a un trabajo de plan.

    oci resource-manager job create-apply-job --execution-plan-strategy <plan_job_ocid> --stack-id <stack_ocid>

    Ejemplo 2: Aprobación automática (no haga referencia a un trabajo del plan).

    oci resource-manager job create-apply-job --execution-plan-strategy AUTO_APPROVED --stack-id <stack_ocid>

    Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

    Para confirmar la existencia de recursos aprovisionados recientemente, inspeccione los recursos en el compartimento.

  5. Revise las entradas de log y el archivo de estado que acaba de ejecutar.
    • Consulte las entradas del log de trabajos para obtener más detalles sobre el trabajo.

      Para ver el log de trabajos (Consola)
      1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Gestor de recursos, haga clic en Trabajos.

        También puede acceder a los trabajos desde una página de detalles de pila. Haga clic en Pilas y, a continuación, en el nombre de la pila que desee.

      2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

      3. Haga clic en el nombre del trabajo de aplicación que ha ejecutado.

        Se abre la página Detalles del trabajo. Los logs están visibles (en la sección Logs en Recursos).

      4. (Opcional) Haga clic en Descargar logs (en la sección Logs en Recursos).

      Para ver el log del trabajo (CLI)

      Consulte el archivo log y anote los campos de "mensaje" en la secuencia de entradas de log del archivo log. Puede ver el archivo log para el trabajo especificado como una lista paginada de entradas o en formato raw.

      Para ver una lista paginada de entradas

      Utilice el comando oci resource-manager job get-job-logs y los parámetros necesarios para obtener logs para un trabajo como una lista paginada de entradas.

      oci resource-manager job get-job-logs [OPTIONS]

      Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

      Ejemplo de respuesta para un trabajo de plan

      El comando devuelve objetos JSON que describen las entradas log. Cada objeto tiene un miembro de mensaje con una propiedad que muestra una línea del plan de ejecución. En este ejemplo, el trabajo Plan crea una única red virtual en la nube (VCN); los miembros restantes muestran detalles sobre la VCN.

      ...
                      {
                      "level": "INFO",
                      "message": "Terraform will perform the following actions:",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "+ oci_core_virtual_network.vcn1",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "id: <computed>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "cidr_block:  \"10.0.0.0/16\",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "compartment_id:  \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "default_dhcp_options_id:  <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "      default_route_table_id: <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "      default_security_list_id: <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      ...
                    
      Para ver logs en formato raw

      Utilice el comando oci resource-manager job get-job-logs-content y los parámetros necesarios para obtener el contenido de los logs de un trabajo.

      oci resource-manager job get-job-logs-content [OPTIONS]

      Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    • El archivo de estado de trabajo representa la salida del trabajo en formato JSON.

      El archivo de estado asigna los recursos de la pila a su configuración y también mantiene los metadatos de configuración esenciales, como las dependencias de recursos El gestor de recursos genera y actualiza los archivos de estado automáticamente al ejecutar los trabajos.

      El gestor de recursos soporta el bloqueo de estado permitiendo que solo se ejecute un trabajo a la vez en una pila determinada. Para obtener más información sobre los archivos de estado, consulte la sección sobre Hashicorp: estado.

      Para ver el estado del trabajo (Consola)
      1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Gestor de recursos, haga clic en Trabajos.

        También puede acceder a los trabajos desde una página de detalles de pila. Haga clic en Pilas y, a continuación, en el nombre de la pila que desee.

      2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

      3. Haga clic en el nombre del trabajo.

        Se abre la página Detalles del trabajo.

      4. Haga clic en Descargar configuración de Terraform.

      Para ver el estado del trabajo (CLI)

      Utilice el comando oci resource-manager job get-job-tf-state y los parámetros necesarios para obtener el estado de un trabajo.

      oci resource-manager job get-job-tf-state [OPTIONS]

      Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

      Respuesta de ejemplo:

      {
        "data": 
        {
          "lineage": "57ef4f0c-c8cd-8a32-d45f-d2c40be7b915",
          "modules": 
          [
            {
              "depends_on": [],
              "outputs": {},
              "path": 
              [
                "root"
              ],
              "resources": 
              {
                "oci_core_virtual_network.vcn1": {
                "depends_on": [],
                "deposed": [],
                "primary": 
                {
                  "attributes": {
                  "cidr_block": "10.0.0.0/16",
                  "compartment_id": "ocid1.tenancy.oc1..uniqueid",
                  "default_dhcp_options_id": "ocid1.dhcpoptions.oc1.phx.uniqueid",
                  "default_route_table_id": "ocid1.routetable.oc1.phx.uniqueid",
                  "default_security_list_id": "ocid1.securitylist.oc1.phx.uniqueid",
                  "display_name": "My VCN display name",
                  "dns_label": "myvcntest",
                  "id": "ocid1.vcn.oc1.phx.uniqueid",
                  "state": "AVAILABLE",
                  "time_created": "2018-05-24 01:13:05.855 +0000 UTC",
                  "vcn_domain_name": "myvcntest.oraclevcn.com"
                },
                "id": "ocid1.vcn.oc1.phx.uniqueid",
                "meta": 
                {
                  "e2bfb730-ecaa-11e6-8f88-34363bc7c4c0": {
                  "create": 300000000000,
                  "delete": 300000000000,
                  "update": 300000000000
                }
              },
              "tainted": false
            },
            "provider": "provider.oci",
            "type": "oci_core_virtual_network"
                }
              }
            }
          ],
        "serial": 4,
        "terraform_version": "0.11.7",
        "version": 3
      }
      }
      Nota

      También puede importar los archivos de estado de los recursos que ya gestiona Terraform.
  6. Cuando necesite liberar los recursos que haya aprovisionado, ejecute un trabajo de destrucción en la pila.

    Un trabajo de destrucción elimina la pila creada y limpia los recursos asociados sin suprimirlos. Por ejemplo, el trabajo de destrucción finaliza las instancias de recursos informáticos asociados a la pila.

    Nota

    Recomendamos ejecutar un trabajo de destrucción antes de suprimir una pila para liberar primero los recursos asociados. Al suprimir una pila, también se suprime su archivo de estado asociado; por lo tanto, pierde el seguimiento del estado de los recursos asociados. La limpieza de recursos asociados a una pila suprimida puede ser difícil sin el archivo de estado, especialmente cuando esos recursos se distribuyen entre varios compartimientos. Para evitar una limpieza difícil más adelante, recomendamos liberar primero los recursos asociados ejecutando un trabajo de destrucción.

    Los datos no se pueden recuperar de los recursos destruidos.

    Para ejecutar un trabajo de destrucción (Consola)
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Resource Manager, haga clic en Pilas.

    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar.

    3. Haga clic en el nombre de la pila que desea.

      Se abre la página Detalles de pila.

    4. Haga clic en Destruir.
    5. (Opcional) En el panel Destruir, revise el nombre del trabajo de aplicación y otros valores, y actualice si es necesario.

    6. Haga clic en Destruir.

      Se crea el trabajo de destrucción. El nuevo trabajo se muestra en Trabajos.

      Después de ejecutar un trabajo de destrucción, obtenga el trabajo para comprobar su estado. Opcionalmente, puede ver el archivo de estado de Terraform, ver los logs y confirmar la supresión de los recursos. También puede volver a crear los recursos destruidos.

      Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

      Para ver el archivo de estado de Terraform ( muestra el estado de los recursos después de ejecutar el trabajo), haga clic en el nombre del trabajo para mostrar la página Detalles del trabajo y, a continuación, haga clic en Ver estado en Recursos. También puede seleccionar Mostrar cambios en esta versión.

      Para ver los logs del trabajo, haga clic en el nombre del trabajo para abrir la página Detalles del trabajo y, a continuación, haga clic en Logs en Recursos.

      Para confirmar la supresión de los recursos, inspeccione los recursos en el compartimento.

      Para volver a crear los recursos de una pila después de destruir los recursos, ejecute un trabajo de aplicación. Los nuevos recursos difieren de los recursos destruidos anteriormente por sus OCID únicos y otros metadatos.

    Para ejecutar un trabajo de destrucción (CLI)

    Utilice el comando oci resource-manager job create-destroy-job y los parámetros necesarios para ejecutar un trabajo de destrucción.

    oci resource-manager job create-destroy-job [OPTIONS]

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para el gestor de recursos.

    Después de ejecutar un trabajo de destrucción, obtenga el trabajo para comprobar su estado.

    Supervise el estado del trabajo (estado del ciclo de vida) obteniendo los detalles del trabajo. Correcto (SUCCEEDED) indica que el trabajo ha terminado. En función de la complejidad del trabajo, la operación puede tardar un tiempo. Mientras se ejecuta el trabajo o una vez finalizado, puede obtener el contenido de logs de trabajo.

    Opcionalmente, puede ver el archivo de estado de Terraform, ver los logs y confirmar la supresión de los recursos. También puede volver a crear recursos destruidos.

    Para confirmar la supresión de los recursos, inspeccione los recursos en el compartimento.

    Para volver a crear los recursos de una pila después de destruir los recursos, ejecute un trabajo de aplicación. Los nuevos recursos difieren de los recursos destruidos anteriormente por sus OCID únicos y otros metadatos.

Tarea 3: Repetir en más entornos

En esta sección se describe cómo crear y desplegar infraestructura en varios entornos.

En este escenario, utilizará el mismo archivo .zip de configuración de Terraform para aprovisionar una instancia de Compute en sus entornos de desarrollo, temporal y producción.

Nota

En este escenario se asume que la configuración de Terraform incluye un documento de esquema, que permite cambiar los valores de variables al crear una pila en la consola.
  1. Acceda al arrendamiento para el nuevo entorno en el que desea aprovisionar la infraestructura definida en la configuración de Terraform.

    Por ejemplo, acceda al arrendamiento para su entorno temporal o de producción.

  2. Abra la página Crear pila:
    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Resource Manager, haga clic en Pilas.
    2. En Valor de lista, seleccione un compartimento en el que tenga permiso para trabajar. La página se actualiza para mostrar solo los recursos en ese compartimento. Si no está seguro de qué compartimento utilizar, póngase en contacto con un administrador.

    3. Haga clic en Crear pila.
  3. Con la misma configuración de Terraform que para el primer entorno, complete el separador Información de pila:

    1. En la página Crear pila, seleccione Mi configuración.

    2. En Configuración de pila, haga clic en . Archivo zip y agregue la configuración de Terraform.

      Puede arrastrar y soltar el archivo .zip de configuración de Terraform en el control o haga clic en Buscar y vaya a la ubicación del archivo .zip.

    3. Introduzca un nombre para la nueva pila (o acepte el nombre por defecto proporcionado). Evite introducir información confidencial.
    4. También puede introducir una descripción.
    5. En el desplegable Crear en compartimento, seleccione el compartimento en el que desea crear la pila.

    6. Haga clic en Siguiente.

      En el panel Configurar variables se muestran variables del archivo de configuración de Terraform seleccionado.

  4. Especifique los valores de variable para este entorno:

    1. En el panel Configurar variables, revise las variables y realice los cambios necesarios.

      Los valores por defecto se proporcionan cuando se especifica en el documento de esquema.

      Importante

      No agregue la clave privada ni otra información confidencial a las variables de configuración.
    2. Haga clic en Siguiente.
  5. En el panel Ver, verifique la configuración de la pila.
  6. Para aprovisionar recursos automáticamente al crear la pila, seleccione Ejecutar aplicación.

  7. Haga clic en Crear para crear una pila.

    Aparece la página de detalles de pila para la nueva pila.

    Si ha seleccionado Ejecutar aplicación, el gestor de recursos ejecuta la acción de aplicación en la nueva pila.

Enhorabuena, ha reutilizado la configuración de Terraform para crear una pila en un nuevo entorno. Si ha seleccionado Ejecutar aplicación, también aprovisionó recursos en el nuevo entorno.

Ahora puede generar y revisar un plan de ejecución (y aprovisionar recursos si no se ha seleccionado Ejecutar aplicación). Para completar estos elementos, repita los pasos de la Tarea 2: aprovisionamiento de la infraestructura en el nuevo entorno.