Cree una instancia informática

Utilice Terraform para crear una instancia informática en su arrendamiento de Oracle Cloud Infrastructure.

Las tareas clave incluyen cómo:

  • Crear claves SSH.
  • Crear una red virtual en la nube en su arrendamiento.
  • Usar el proveedor Terraform de Oracle Cloud Infrastructure para crear una instancia informática en la red.
  • Conectarse a su instancia.
Diagrama de los componentes necesarios para crear una instancia informática de Oracle Cloud Infrastructure con Terraform. La instancia informática se crea en una subred pública de una red virtual en la nube. La subred pública está conectada a Internet a través de un gateway de Internet.

Para obtener más información, consulte:

Antes de empezar

Para realizar correctamente este tutorial, debe tener lo siguiente:

Requisitos

1. Preparación

Prepare su entorno para crear una instancia informática. Además, recopile toda la información que necesita para realizar el tutorial.

Creación de las claves de cifrado SSH

Cree claves de cifrado ssh para conectarse a su instancia informática.

  1. Abra una ventana de terminal:
    • MacOS o Linux: abra una ventana de terminal en el directorio donde desee almacenar las claves.
    • Windows: haga clic con el botón derecho en el directorio donde desea almacenar sus claves y seleccione Git Bash Aquí.
    Nota

    Si utiliza el subsistema de Windows para Linux (WSL), asegúrese de que el directorio de las claves esté directamente en la máquina Linux y no en una carpeta /mnt (sistema de archivos de Windows).
  2. Ejecute el siguiente comando de OpenSSH:
    ssh-keygen -t rsa -N "" -b 2048 -C <your-ssh-key-name> -f <your-ssh-key-name>

    El comando genera algunos objetos de texto aleatorios utilizados para generar las claves. Cuando haya terminado, tendrá dos archivos:

    • Archivo de clave privada: <your-ssh-key-name>
    • Archivo de clave pública: <your-ssh-key-name>.pub

    Utilice estos archivos para conectarse a su instancia informática.

Ha generado las claves de cifrado necesarias.

Para obtener información detallada sobre la generación de claves de cifrado ssh, consulte Creación de un par de claves.

Creación de una red virtual en la nube (VCN)
  1. Abra el menú de navegación , seleccione Red y, a continuación, seleccione Redes virtuales en la nube.
  2. En la página de lista Redes virtuales en la nube, realice una de las siguientes acciones según la opción que vea:

    • En Acciones, seleccione Iniciar asistente de VCN.
    • Seleccione Iniciar asistente de VCN.
  3. En el panel Iniciar asistente de VCN, seleccione Crear VCN con conexión a Internet.
  4. Seleccione Iniciar asistente de VCN.

    Se abre la ventana Crear una VCN con conexión a Internet.

1. Configuración

Introduzca la siguiente información básica:

  • Nombre de VCN: <your-vcn-name>

  • Compartimento: <your-compartment-name>
Configurar VCN
  • Bloque IPv4 CIDR de VCN: mantenga el valor por defecto: 10.0.0.0/16

  • Utilice los nombres de host de DNS en esta VCN: anule la selección de esta casilla de control.

Configurar Subred Pública
  • Bloque de CIDRIPv4 CIDR IPv4: mantenga el valor por defecto: 10.0.0.0/24

Configurar subred privada
  • Bloque de CIDRIPv4 CIDR IPv4: mantenga el valor por defecto: 10.0.1.0/24

Tenga en cuenta que las subredes públicas y privadas tienen diferentes direcciones de red.

Seleccione Siguiente. Se abre la página Revisar y crear.

2. Revisar y crear

Revise la configuración completa de la VCN y, a continuación, seleccione Crear.

Se crean recursos y, a continuación, aparece un mensaje que indica que se ha completado la creación de la VCN.

Para ver la VCN creada, seleccione Ver VCN.

Ha creado correctamente una VCN para alojar su instancia informática.

Recopilación de la información necesaria

Recopile y copie la información que necesita en el bloc de notas.

  • Nombre de compartimento
  • ID de compartimento
  • Identificador de Subred
  • ID de origen (imagen de la instancia informática)
  • Unidad (instancia informática)
  • Clave autorizada SSH (ruta de acceso de clave pública)
  • Ruta de acceso de clave SSH privada

Para conocer los pasos para recopilar esta información, consulte la siguiente tabla.

elemento Pasos para recopilar elementos
Nombre de compartimento Consulte el tutorial completo Creación de un compartimento.
ID de compartimento
  1. En la barra de búsqueda de la consola, introduzca <your-compartment-name> .
  2. Seleccione <your-compartment-name> en los resultados de búsqueda.
  3. Seleccione Copiar junto al OCID.
Nombre mostrado de la instancia El nombre que desee.
Identificador de Subred
  1. En la consola: abra el menú de navegación , seleccione Red y, a continuación, seleccione Redes virtuales en la nube.
  2. Seleccione <your-vcn-name> en Configurar VCN.
  3. Seleccione Subnets.
  4. Seleccione <your-compartment-name> para mostrar las subredes del compartimento.
  5. En el menú Acciones (tres puntos) de la subred pública, seleccione Copiar OCID.
ID de origen (imagen de la instancia informática)
  1. En la barra de navegación de la consola, busque su región.

    Consulte Trabajar en regiones.

  2. Vaya a Notas de la versión de imagen.
  3. Seleccione Ubuntu 24.04.

    Se abre la lista de imágenes para Ubuntu 24.04.

  4. Seleccione la imagen más reciente: Canonical-Ubuntu-24.04-<date>.

    La página muestra los OCID de imagen.

  5. Busque la imagen para su región y copie el OCID de la imagen.

    Nota: Asegúrese de seleccionar un OCID comercial sin gov en su OCID.

Unidad y configuración (instancia informática)
  • Unidad: VM.Standard.E5.Flex
  • OCPU: 1
  • Memoria (GB): 12

Nota: VM.Standard.E5.Flex necesita valores para las OCPU y la memoria. Para seleccionar una unidad diferente, vaya a Unidades de máquina virtual (VM).

Clave autorizada SSH (ruta de acceso de clave pública) Consulte la sección completada, Create SSH Encryption Keys. Utilice esta ruta de acceso cuando configure la instancia informática.
Ruta de acceso de clave SSH privada Consulte la sección completada, Create SSH Encryption Keys. Utilice esta clave privada cuando se conecte a su instancia informática.
Adición de una política de recursos

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 all-resources in compartment <your-compartment-name>
                    

Con este privilegio, puede gestionar todos los recursos del compartimento, otorgándole derechos administrativos en dicho compartimento.

Pasos para agregar la política
  1. En la consola: abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
  2. Seleccione su compartimento.
  3. Seleccione Crear política.
  4. En la página Crear política, introduzca los siguientes valores:
    • Name: manage-<your-compartment-name>-resources
    • Description:: Allow users to list, create, update, and delete resources in <your-compartment-name>.
    • Compartment: <your-tenancy>(root)
  5. En Creador de políticas, introduzca los siguientes valores:
    • Casos de uso de política: Compartment Management
    • Plantillas de políticas comunes: Let compartment admins manage the compartment
    • Dominio de identidad: <identity-domain>
    • Grupos: <a-group-your-username-belongs-to>
    • Ubicación: <your-compartment-name>
  6. Haga clic en Crear.

Referencia: Políticas comunes

2. Creación de scripts

Cree scripts para la autenticación, la recuperación de datos, la creación de una instancia informática y la impresión de 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-compute y, a continuación, cambie a ese directorio.
    mkdir tf-compute
    cd tf-compute
  2. Copie el archivo provider.tf en el directorio tf-compute.
    cp ../tf-provider/provider.tf .
  3. Copie el archivo versions.tf en el directorio tf-compute.
    cp ../tf-provider/versions.tf .
Recuperación de datos

Recupere el nombre de un dominio de disponibilidad de su cuenta. Un dominio de disponibilidad es una de las entradas necesarias para crear una instancia informática.

  1. Copie el archivo availability-domains.tf en el directorio tf-compute.

    El archivo availability-domains.tf se creó durante el tutorial Configuración de Terraform de OCI.

    cp ../tf-provider/availability-domains.tf .

    Código de ejemplo:

    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/identity_availability_domains
    
    data "oci_identity_availability_domains" "ads" {
      compartment_id = "<tenancy-ocid>"
    }
  2. En el directorio tf-compute, cree un archivo denominado outputs.tf.
    Nota

    Asegúrese de que outputs.tf, provider.tf y availability-domains.tf estén en el mismo directorio.
  3. Para mostrar el nombre del primer dominio de disponibilidad en la lista de oci_identity_availability_domains, agregue el siguiente código a outputs.tf.
    
    # The "name" of the availability domain to be used for the compute instance.
    output "name-of-first-availability-domain" {
      value = data.oci_identity_availability_domains.ads.availability_domains[0].name
    }
  4. Guarde el archivo outputs.tf.
  5. Ejecute los scripts con Terraform:
    terraform init
    terraform plan
    terraform apply

    Cuando se le solicite confirmación, introduzca yes para que los datos se recuperen y se muestren en la salida.

    Ahora tiene una salida con el nombre del dominio de disponibilidad que utilizar para la instancia.

    Salida de ejemplo:

    name-of-first-availability-domain = QnsC:US-ASHBURN-AD-1
Felicidades! Ha recuperado correctamente datos de su cuenta de Oracle Cloud Infrastructure para utilizarlos en su instancia informática.
Explicación

Al configurar Terraform en el primer tutorial, Configuración de Terraform de OCI, el bloque de salida incluye la siguiente línea:

value = data.oci_identity_availability_domains.ads.availability_domains
                        

A continuación, la salida era similar a la siguiente:

Outputs:

all-availability-domains-in-your-tenancy = tolist([
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-1"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-2"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-3"
  },
])

Ahora, desea recuperar el nombre del primer dominio de disponibilidad de la lista y utilizarlo para la ubicación de la instancia informática más adelante:

"name" = "xxxx:US-ASHBURN-AD-1"
Nota

  • Utilice corchetes para agregar un índice a un atributo de lista.
  • Utilice el índice 0 para el primer elemento de una lista.
  • Utilice un punto después de los corchetes seguidos de un atributo de la lista para especificar ese atributo.
  • Ejemplo: Primer elemento de la lista:

    value = data.oci_identity_availability_domains.ads.availability_domains[0]

  • Ejemplo: Nombre del primer elemento de la lista:

    value = data.oci_identity_availability_domains.ads.availability_domains[0].name

Declaración de un recurso informático

Informe un recurso informático de Oracle Cloud Infrastructure y, a continuación, defina los elementos específicos de la instancia.

Consejo

Puede guardar una pila del flujo de trabajo de la consola para crear una instancia informática. La pila contiene una configuración de Terraform que puede utilizar como referencia para la configuración de unidades y unidades. Consulte Creación de una pila a partir de una página de creación de recursos y Obtención de la configuración de Terraform de una pila.
  1. Cree un archivo llamado compute.tf.
  2. Agregue el siguiente código a compute.tf.
    resource "oci_core_instance" "ubuntu_instance" {
        # Required
        availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
        compartment_id = "<compartment-ocid>"
        shape = "VM.Standard.E5.Flex"
        shape_config {
            ocpus = "1"
            memory_in_gbs = "12"
        }
        source_details {
            source_id = "<source-ocid>"
            source_type = "image"
        }
    
        # Optional
        display_name = "<your-ubuntu-instance-name>"
        create_vnic_details {
            assign_public_ip = true
            subnet_id = "<subnet-ocid>"
        }
        metadata = {
            ssh_authorized_keys = file("<ssh-public-key-path>")
        } 
        preserve_boot_volume = false
    }
    Importante

    • Sustituya <compartment-ocid>, <source-ocid> , <your-ubuntu-instance-name> y <subnet-ocid> por la información que ha recopilado en Recopilación de información necesaria.
    • Para el dominio de disponibilidad, utilice el nombre que ha recuperado con el origen de datos:
      data.oci_identity_availability_domains.ads.availability_domains[0].name
    • Para ssh_authorized_keys, utilice el siguiente formato:
      file("<ssh-public-key-path>")

      No puede cambiar su valor después de crear la máquina virtual.

  3. Guarde el archivo compute.tf.
Explicación

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

Para declarar un recurso informático:

  • Vaya a Proveedor de Oracle Cloud Infrastructure.
  • En el cuadro Filtro de la parte superior izquierda, introduzca core instance.

    Los resultados incluyen fuentes de datos y recursos para varios servicios.

  • En Núcleo, vaya a Recursos y seleccione oci_core_instance.

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

  • En la sección Referencia de argumento, utilice los siguientes argumentos necesarios (entradas):
    • availability_domain
    • compartment_id
    • forma
    • source_details
      • source_id
      • source_type
  • 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_core_instance"
    • Agregue una etiqueta para un nombre local (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: "ubuntu_instance"
    • Dentro del bloque de código, proporcione un valor para los argumentos necesarios. No tienen un valor 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 la instancia informática después de que Terraform la cree.

  1. Abra el archivo outputs.tf.
  2. Cree un bloque de salida para la IP pública de la instancia:
    • La IP pública está disponible después de crear la instancia.
    • Utilice la IP pública para conectarse a la instancia.
    • Agregue el siguiente código a outputs.tf:
    # Outputs for compute instance
    
    output "public-ip-for-compute-instance" {
      value = oci_core_instance.ubuntu_instance.public_ip
    }
  3. Agregue algunas salidas más para describir la instancia informática:
    • display_name
    • Identificador
    • Región
    • forma
    • Estado
    • ocpus
    • memory_in_gbs
    • time_created
    
    output "instance-name" {
      value = oci_core_instance.ubuntu_instance.display_name
    }
    
    output "instance-OCID" {
      value = oci_core_instance.ubuntu_instance.id
    }
    
    output "instance-region" {
      value = oci_core_instance.ubuntu_instance.region
    }
    
    output "instance-shape" {
      value = oci_core_instance.ubuntu_instance.shape
    }
    
    output "instance-state" {
      value = oci_core_instance.ubuntu_instance.state
    }
    
    output "instance-OCPUs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].ocpus
    }
    
    output "instance-memory-in-GBs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].memory_in_gbs
    }
    
    output "time-created" {
      value = oci_core_instance.ubuntu_instance.time_created
    }
  4. Guarde el archivo outputs.tf.
Explicación
  • Vaya a Referencia de atributos (oci_core_instance).
    Nota

    Los atributos son las salidas que puede devolver para el recurso oci_core_instance.
  • Busque el atributo para la IP pública: public_ip.
  • Cree un bloque de salida de recursos para public_ip:
    • Para la expresión de valor, utilice el siguiente formato:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Ejemplo: value = oci_core_instance.ubuntu_instance.public_ip
  • Cree un bloque de salida para cada una de las siguientes salidas:
    • display_name
    • Identificador
    • Región
    • forma
    • Estado
    • ocpus
    • memory_in_gbs
    • time_created

3. Ejecución de scripts

Ejecute los scripts de Terraform para crear la instancia informática en un compartimento de su arrendamiento. Use las claves SSH para conectar a la instancia. Cuando ya no necesite su instancia, destrúyala con Terraform.

Crear una instancia
  1. Cree su instancia informática con Terraform:
    terraform init
    terraform plan
    terraform apply

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

    Después de crear la instancia, las salidas que ha definido, incluido <your-public-ip-address>, se muestran en el terminal de salida.
  2. (Opcional) Vea la creación de la instancia desde la consola.
    • Abra el menú de navegación y seleccione Recursos informáticos. En Recursos informáticos, seleccione Instancias.
    • Seleccione su compartimento.
    • Vea que la instancia aparece en la lista de instancias.

Felicidades! Ha creado correctamente una instancia informática con Terraform en su cuenta de Oracle Cloud Infrastructure.

Referencias:

Conexión a la instancia
  1. Desde su terminal, introduzca las salidas para la instancia informática:
    terraform output
  2. Copie la dirección IP pública de las salidas.
  3. Desde la máquina Linux, conéctese a su máquina virtual con este comando ssh:
    ssh -i <ssh-private-key-path> ubuntu@<your-public-ip-address>
                                    
    Nota

    Asegúrese de que la clave privada esté ubicada directamente en la máquina Linux (WSL).
  4. Desconéctese de la instancia:
    exit
Destrucción de la instancia
  1. (Opcional) Después de que ya no necesite su instancia informática, puede finalizarla con el siguiente comando:
    terraform destroy

    Cuando se le solicite confirmación, introduzca yes.

  2. (Opcional) Vea la terminación desde la consola:
    • Abra el menú de navegación y seleccione Recursos informáticos. En Recursos informáticos, seleccione Instancias.
    • Seleccione su compartimento.
    • Vea el cambio de estado de su instancia a Finalizando y, a continuación, a Finalizado.