Configuraciones de Terraform para el gestor de recursos

Revisar los requisitos y las recomendaciones para las configuraciones de Terraform utilizadas con Resource Manager. Utilice Terraform y el gestor de recursos para instalar, configurar y gestionar recursos con el modelo infraestructura como código.

Para obtener información básica sobre las configuraciones de Terraform, consulte Creación de configuraciones. Para obtener instrucciones sobre el uso de configuraciones con pilas y trabajos, consulte Gestión de pilas y trabajos.

Para conocer los orígenes de configuración de Terraform soportados con Resource Manager, consulte Dónde almacenar las configuraciones de Terraform.

Además de escribir su propio archivo de configuración de Terraform, también tiene la opción de generar una configuración de Terraform a partir de un compartimento existente mediante la detección de recursos o una plantilla de ejemplo.

Atención

No proporcione credenciales de usuario ni otra información confidencial en las configuraciones de Terraform.

Requisitos

Los archivos de configuración de Terraform que se utilizan con Resource Manager deben cumplir los siguientes requisitos.

Proveedor de Terraform

Al utilizar el gestor de recursos, el campo region en el bloque provider "oci" es el único campo necesario. Para obtener más información sobre la definición de proveedores, consulte Configuration File Requirements.

Estructura de archivo

El gestor de recursos necesita la siguiente estructura de archivos para la configuración de Terraform:

  • El directorio de trabajo debe contener al menos un archivo .tf. El directorio de trabajo no puede contener un directorio .terraform.

    El directorio de trabajo es la ruta desde la que ejecutar Terraform. Por defecto, el directorio de trabajo es el directorio raíz de la configuración (para una configuración cargada, la raíz del archivo .zip). Al utilizar la API, puede especificar una ubicación diferente para el directorio de trabajo definiendo el parámetro workingDirectory.

  • La configuración debe seguir las directrices especificadas en Creación de configuraciones.
  • No puede haber archivos de estado de Terraform (.tfstate) en la configuración.
  • Si planea cargar la configuración localmente, agrupe todos los archivos en un archivo .zip.

Variables

Recomendamos utilizar un documento de esquema con la configuración de Terraform para facilitar la entrada del usuario en la consola de Oracle Cloud Infrastructure.

Resource Manager no tiene requisitos para variables en configuraciones de Terraform. El gestor de recursos soporta el comportamiento nativo de Terraform para gestionar variables. Terraform define variables de sus definiciones de variables que utilizan restricciones de tipo soportadas. Al ejecutar un trabajo, los valores de variable de la pila se agregan como variables de entorno en el host de Terraform de Resource Manager. Por ejemplo, la VCN especificada en una pila para una variable de VCN determinada se agrega como una variable de entorno.

Nota

Cuando se definen en la configuración de Terraform, las siguientes variables se rellenan automáticamente con valores en las páginas de la consola que se utilizan para crear y editar la pila. Los valores de la pila se utilizan al seleccionar las acciones de Terraform Plan, Aplicar y Destruir.

  • tenancy_ocid (OCID de arrendamiento)
  • compartment_ocid (OCID de compartimento)
  • region (región)
  • current_user_ocid (OCID del usuario actual)

Configuración de proveedor de terceros

Haga referencia a los proveedores de Terraform de terceros en las configuraciones de Terraform utilizadas con el gestor de recursos.

Por defecto, las nuevas pilas del gestor de recursos recuperan proveedores de terceros de Terraform Registry. (A menos que se actualice, determinadas pilas anteriores se recuperan del gestor de recursos). Los proveedores personalizados también están disponibles para pilas nuevas y actualizadas.

Al igual que con cualquier configuración de proveedor, recomendamos especificar versiones. Los archivos de bloqueo de dependencia se gestionan automáticamente para pilas nuevas y actualizadas. Los proveedores se actualizan con las restricciones de versión de la configuración de Terraform. Para obtener instrucciones, consulte Retrieving the Latest Providers.

Para obtener más información sobre la adición de proveedores a las configuraciones de Terraform, consulte Configuración de proveedores.

Ejemplo de configuración de Terraform para Resource Manager

El siguiente ejemplo muestra una configuración de Terraform que está incluida en un solo archivo. En este ejemplo básico se define solo un proveedor de Terraform, un recurso de Oracle Cloud Infrastructure y un juego de variables.



variable "compartment_ocid" {}
variable "region" {}

provider "oci" {
  region = "${var.region}"
}

resource "oci_core_virtual_network" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = "${var.compartment_ocid}"
  display_name = "vcn1"
}

Con mayor frecuencia, las configuraciones de Terraform constan de dos o más archivos agrupados (para una configuración cargada, los archivos se agruparían en un archivo .zip). Para ver configuraciones más complejas de Terraform que incluyen varios archivos, consulte los ejemplos en Ejemplos de proveedor de Oracle Cloud Infrastructure de Terraform.

Consejo

Cree rápidamente pilas con configuraciones de Terraform de OCI de ejemplo. Vaya a Ejemplos de proveedor de Oracle Cloud Infrastructure de Terraform, vaya a la carpeta de la configuración que desee (como adm) y, a continuación, haga clic en el botón Desplegar en Oracle Cloud en "Botón de magia" en el archivo Léame.

Dónde almacenar las configuraciones de Terraform

Al crear una pila con Resource Manager, puede seleccionar la configuración de Terraform de los siguientes orígenes.

  • Archivo .zip local
  • Carpeta Local
  • Cubo de almacenamiento de objetos

    Los contenidos más recientes del cubo los utiliza automáticamente cualquier trabajo que se ejecute en la pila asociada.

  • Sistema de control de código fuente, como Git

    La última versión de la configuración la utiliza automáticamente cualquier trabajo que se ejecute en la pila asociada.

  • Plantilla (configuración de Terraform predefinida de Oracle o una plantilla privada)
  • Compartimento existente (Detección de recursos)