Creación de un compartimento

Utilice Terraform para conectarse a su cuenta de Oracle Cloud Infrastructure y crear un compartimento en su arrendamiento.

Las tareas clave incluyen cómo:

  • Utilice los recursos del proveedor Terraform de Oracle Cloud Infrastructure para:
    • Declarar un compartimento con sus elementos específicos.
    • Crear el compartimento en su arrendamiento.
Diagrama de un usuario conectado desde una máquina local a un arrendamiento de Oracle Cloud Infrastructure. El entorno local es Linux y tiene Terraform instalado. Hay una flecha desde Terraform en el entorno local hasta Registro de Terraform y hasta el arrendamiento, apuntando a un compartimento. Estas flechas sugieren que el usuario ha creado un compartimento en el arrendamiento mediante Terraform y el registro de Terraform.

Para obtener más información, consulte:

1. Preparación

Prepare el entorno para autenticar y ejecutar los scripts de Terraform. Además, recopile toda la información que necesita para realizar el tutorial.

Obtención de la información del arrendamiento

Recopile la siguiente información de la consola de Oracle Cloud y copiarla en el bloc de notas.

  • OCID de arrendamiento: <tenancy-ocid>
    1. En la barra de navegación, seleccione el menú Perfil Icono de menú de perfil y, a continuación, seleccione Arrendamiento: <your_tenancy_name>.
    2. Junto a OCID, seleccione Copiar.

      El OCID de arrendamiento se copia en el portapapeles.

Adición de una política de compartimento

Si su nombre de usuario está en el grupo Administrators, omita esta sección. De lo contrario, solicite al administrador que agregue la siguiente política a su arrendamiento:

allow group <a-group-your-username-belongs-to> to manage compartments in tenancy

Con este privilegio, puede crear un compartimento para todos los recursos del tutorial.

Pasos para agregar la política
  1. Conéctese a la consola de Oracle Cloud.
  2. En el menú de navegación , seleccione el menú Perfil Icono de menú de perfil y, a continuación, seleccione Configuración de usuario.
  3. Seleccione Grupos o Mis grupos, según la opción que vea.
  4. En un bloc de notas, copie el nombre de un grupo al que pertenece el nombre de usuario.
  5. Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
  6. Seleccione el compartimento: <your-tenancy>(root)
  7. Seleccione Crear política.
  8. En la página Crear política, introduzca los siguientes valores:
    • Nombre: manage-compartments
    • Descripción: Allow the group <a-group-your-username-belongs-to> to list, create, update, delete and recover compartments in the tenancy.
    • Compartimento: <your-tenancy>(root)
  9. En Creador de Política, seleccione Mostrar Editor Manual.
  10. Pegue la siguiente política:
    allow group <a-group-your-username-belongs-to> to manage compartments in tenancy
  11. Haga clic en Crear.

Referencia: Detalles de combinaciones de verbos + tipo de recurso (consulte el tipo de recurso compartments)

2. Creación de scripts

Cree scripts para la autenticación, para crear un compartimento e imprimir salidas.

Adición de autenticación
En primer lugar, configure un directorio para los scripts de Terraform. A continuación, copie los scripts de proveedor y versiones del tutorial Configuración de Terraform de OCI para que su cuenta de Oracle Cloud Infrastructure pueda autenticar los scripts que se ejecutan desde este directorio.
  1. En el directorio $HOME, cree un directorio denominado tf-compartment y cambie a ese directorio.
    mkdir tf-compartment
    cd tf-compartment
  2. Copie el archivo provider.tf en el directorio tf-compartment.
    cp ../tf-provider/provider.tf .
  3. Copie el archivo versions.tf en el directorio tf-compartment.
    cp ../tf-provider/versions.tf .
Declaración de un recurso de compartimento

Seleccione un recurso de compartimento de Oracle Cloud Infrastructure y, a continuación, defina los elementos específicos del compartimento.

  1. Cree un archivo llamado compartment.tf.
  2. Agregue el siguiente código a compartment.tf.
    • Sustituya <tenancy-ocid> por la información recopilada en Obtener información de arrendamiento.

      compartment_id es el OCID del compartimento principal. Utilice el compartimento raíz como principal. El OCID de arrendamiento es el OCID de compartimento para el compartimento raíz.

    • Sustituya <your-compartment-name> por el nombre que desee.
    
    resource "oci_identity_compartment" "tf-compartment" {
        # Required
        compartment_id = "<tenancy-ocid>"
        description = "Compartment for Terraform resources."
        name = "<your-compartment-name>"
    }
  3. Guarde el archivo compartment.tf.
Explicación

En Terraform, los recursos son objetos como redes virtuales en la nube o instancias informáticas. Puede crearlos, actualizarlos y suprimirlos con Terraform.

Para declarar un recurso de compartimento:

  1. Vaya a Proveedor de Oracle Cloud Infrastructure.
  2. En el cuadro Filtro de la parte superior izquierda, introduzca compartment.

    Se devuelven resultados para los orígenes de datos y los recursos.

  3. En Identidad, vaya a Recursos y seleccione oci_identity_compartment.

    El título de la página es el tipo de recurso: oci_identity_compartment

    Los argumentos necesarios se muestran en Referencia de argumento:

    • compartment_id
    • description
    • name
  4. Cree un bloque de recursos:
    • Declaración de un bloque de recursos con la palabra clave: resource
    • Agregue una etiqueta para el recurso type: "oci_identity_compartment"
    • Agregue una etiqueta para un nombre local de su elección:
      • La etiqueta puede contener letras, dígitos, caracteres de subrayado (_) y guiones (-). El primer carácter no debe ser un dígito.
      • Ejemplo: "tf-compartment"
    • Dentro del bloque de código, proporcione un valor para los argumentos necesarios. No tienen valores por defecto.
    • Para los argumentos opcionales, proporcione valores para los que desea sustituir. En caso contrario, se utilizan sus valores por defecto.
Adición de salidas

Agregue bloques de salida al código para obtener información sobre el compartimento después de que Terraform cree el compartimento.

  1. En el directorio tf-compartment, cree un archivo denominado outputs.tf.
  2. Agregue el siguiente código a outputs.tf.
    # Outputs for compartment
    
    output "compartment-name" {
      value = oci_identity_compartment.tf-compartment.name
    }
    
    output "compartment-OCID" {
      value = oci_identity_compartment.tf-compartment.id
    }
  3. Guarde el archivo outputs.tf.
  4. Muestre todos los archivos del directorio tf-compartment.
    ls

    Asegúrese de que los siguientes archivos estén presentes en el mismo directorio:

    • compartment.tf
    • outputs.tf
    • provider.tf
    • versions.tf
Explicación
  • Vaya a Referencia de atributos (oci_identity_compartment).
    Nota

    Los atributos son las salidas que puede devolver para el recurso oci_identity_compartment.
  • Decida qué atributos desea mostrar.
  • Cree un bloque de salida de recursos:
    • Declaración de un bloque de salida con la palabra clave: output
    • Agregue una etiqueta a imprimir con los resultados de la salida:
      • La etiqueta puede contener letras, dígitos, caracteres de subrayado (_) y guiones (-). El primer carácter no debe ser un dígito.
      • Ejemplo: "compartment-name"
    • Dentro del bloque de código, introduzca un valor para la salida del recurso con la expresión:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Ejemplo: value = oci_identity_compartment.tf-compartment.id
    • Cree un bloque de salida para cada salida.

3. Creación de un compartimento

Ejecute los scripts de Terraform. Después de que su cuenta autentica los scripts, Terraform crea un compartimento en su arrendamiento.

Inicialización
Inicialice un directorio de trabajo en el directorio tf-compartment.
terraform init

Salida de ejemplo:

Initializing the backend...

Initializing provider plugins...

Terraform has been successfully initialized!
Planificación
Cree un plan de ejecución para comprobar si los cambios que se muestran en el plan de ejecución coinciden con sus expectativas, sin cambiar los recursos reales.
terraform plan

La salida esperada incluye la línea Plan: 1 to add, 0 to change, 0 to destroy.

Salida de ejemplo:

Terraform used the selected providers to generate the following execution plan. 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 = "ocid1.tenancy.xxx"
      + 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.

Changes to Outputs:
  + compartment-OCID = (known after apply)
  + compartment-name = "<your-compartment-name>"
Aplicar
  1. Cree el compartimento con Terraform:
    terraform apply

    Cuando se le solicite confirmación, introduzca yes para crear el recurso.

  2. (Opcional) Vea la creación desde la consola:
    • Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Compartimentos.
    • Refresque la página hasta que vea el nombre del compartimento.
    • Seleccione el nombre del compartimento para ver sus detalles, como su OCID.
  3. En el terminal de salida, revise las salidas definidas.

    Salida de ejemplo:

    oci_identity_compartment.tf-compartment: Creating...
    oci_identity_compartment.tf-compartment: Creation complete after 9s [id=xxx]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    
    Outputs:
    
    compartment-OCID = ocid1.compartment.xxx
    compartment-name = <your-compartment-name>

Felicidades! Se ha conectado correctamente y creado un compartimento en su arrendamiento mediante el proveedor Terraform de Oracle Cloud Infrastructure.

Referencias: