Preparar para Provisionar los Recursos de Infraestructura

Instale Terraform y genere las claves necesarias para crear los recursos de infraestructura en Oracle Cloud.

Antes de Empezar

Antes de empezar a crear recursos en Oracle Cloud Infrastructure, asegúrese de tener lo siguiente:

  • Credenciales para un arrendamiento de Oracle Cloud.

  • Compartimento, con permiso para crear y gestionar recursos en él.
  • Una computadora que tiene el siguiente software y acceso a Internet:

    • Utilidad para generar claves de firma de API.

      La mayoría de los sistemas UNIX como tienen openssl. En Windows, puede utilizar Git Bash.

    • Utilidad para generar pares de claves SSH.

      La mayoría de los sistemas UNIX como tienen ssh-keygen. En Windows, puede utilizar PuTTY.

    • Un explorador web.

  • Conocimiento básico de Terraform.

    Como mínimo, lea la introducción en https://www.terraform.io/intro/.

Instalar Terragrunt

Terragrunt es una herramienta de terceros para aplicar y gestionar módulos de Terraform de forma eficaz. En lugar de aplicar los módulos de forma individual mediante Terraform, puede desplegar los recursos definidos en todos los módulos, en la secuencia correcta, mediante una única operación de Terragrunt.

Para descargar e instalar Terragrunt, siga las instrucciones de https://github.com/gruntwork-io/terragrunt#install-terragrunt.

Nota:

Si instala Terragrunt en Linux o macOS mediante brew, Terraform se instala automáticamente como una de las dependencias. No necesita instalar Terraform.

Instalar Terraform

En sistemas UNIX como Linux, incluido Oracle Linux, puede instalar Terraform descargando y extrayendo el paquete Terraform para el sistema operativo.

  1. Vaya a https://www.terraform.io/downloads.html.
  2. Descargue el paquete adecuado según su sistema operativo.
  3. Extraiga el paquete a la ruta /usr/local/bin/.
    Puede extraer Terraform en cualquier otro directorio del host local. Asegúrese de que el directorio está incluido en la variable PATH.
    Terraform está instalado y preparado para su uso.
  4. Verifique la instalación.
    terraform -v

    Aparece la versión de Terraform, como se muestra en este ejemplo:

    Terraform v0.12.18

Generar una clave de firma de API

Para permitir que Terraform se autentique con Oracle Cloud Infrastructure, debe proporcionar una clave RSA con el formato de correo mejorado de privilegios (PEM). Esta clave no es la misma que la clave SSH que utiliza para acceder a las instancias informáticas.

Utilice OpenSSL para generar la clave de firma de API.
  1. Cree un subdirectorio oculto en el directorio raíz para almacenar la clave de PEM.
    mkdir ~/.oci
  2. Generar una clave privada (tamaño: 2048 bits o superior).
    openssl genrsa -out ~/.oci/oci_api_key.pem 2048
  3. Cambie los permisos del archivo de clave privada para garantizar que sólo pueda leer la clave.
    chmod go-rwx ~/.oci/oci_api_key.pem
  4. Generar la clave pública para la clave privada.
    openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

Carga de la clave de firma de API

Después de generar una clave de firma de API, cargue la clave pública para el usuario adecuado en Oracle Cloud Infrastructure.

  1. Inicie sesión en la consola web de Oracle Cloud Infrastructure.
  2. En el menú Servicios, seleccione Identidad y, a continuación, Usuarios.
  3. En la página Usuarios, haga clic en el usuario que desea especificar en la configuración de Terraform.
  4. En la página de detalles del usuario, haga clic en Agregar Clave Pública.
  5. Copie el valor de la clave pública del archivo ~/.oci/oci_api_key_public.pem y péguela en el campo PUBLIC KEY.
  6. Haga clic en Agregar.
    Se carga la clave y se muestra su huella.
  7. Copie la huella. Lo necesitará más adelante.

Generación de un par de claves SSH para el host de base

Un par de claves SSH se utiliza para permitir el acceso seguro a las instancias. Un par de claves se genera en el host local. A continuación, los módulos Terraform agregan la clave pública al host de base. Cuando se conecte al host de base, proporcione la clave privada para autenticar el acceso.

  • Use la utilidad ssh-keygen y genere un par de claves SSH. No configure una frase de contraseña para el par de claves.
    ssh-keygen -t rsa -N "" -b 2048 -C "key_name" -f path/root_name
    • -t rsa: especifica que se debe generar el par de claves mediante el algoritmo RSA

    • -N "": especifica la contraseña que desea asociar a este par de claves. No introduzca nada entre comillas. Cree el par de claves sin una frase de contraseña.

    • -b 2048: Especifica que desea generar una clave 2048-bit. Este valor es el valor por defecto (y el valor mínimo recomendado).

    • -C "key_name": especifica el nombre del par de claves.

    • -f path/root_name: especifica el directorio en el que se guarda el par de claves y el nombre de raíz para la clave pública y privada. La clave pública tiene .pub agregado al nombre raíz.

El par de claves SSH se genera y se guarda en el directorio que especificó. Tome nota de la ruta de acceso completa y el nombre de los archivos de claves.

Generar un par de claves SSH para las instancias privadas

Un host de base activa el reenvío de SSH a las instancias que no tienen direcciones IP públicas. Para acceder a dichas instancias privadas de forma segura a través del host de base, utilice un par de claves SSH. Como práctica recomendada de seguridad, este par de claves no debe ser el mismo que el par de claves utilizado para el host bastion.

  • Use la utilidad ssh-keygen y genere un par de claves SSH. No configure una frase de contraseña para el par de claves.
    ssh-keygen -t rsa -N "" -b 2048 -C "key_name" -f path/root_name
    • -t rsa: especifica que se debe generar el par de claves mediante el algoritmo RSA

    • -N "": especifica la contraseña que desea asociar a este par de claves. No introduzca nada entre comillas. Cree el par de claves sin una frase de contraseña.

    • -b 2048: Especifica que desea generar una clave 2048-bit. Este valor es el valor por defecto (y el valor mínimo recomendado).

    • -C "key_name": especifica el nombre del par de claves.

    • -f path/root_name: especifica el directorio en el que se guarda el par de claves y el nombre de raíz para la clave pública y privada. La clave pública tiene .pub agregado al nombre raíz.

El par de claves SSH se genera y se guarda en el directorio que especificó. Tome nota de la ruta de acceso completa y el nombre de los archivos de claves.