Acerca de la Configuración de Terraform en Sistemas UNIX-Like

Para utilizar Terraform para crear componentes de Oracle Cloud Infrastructure, debe descargar e instalar Terraform. También descargará los módulos Terraform que creen los archivos de configuración que utilizará para crear los componentes de infraestructura necesarios.

El sistema en el que instala Terraform y almacena los módulos de Teraform puede ser tanto locales como locales en la nube. Para mayor comodidad, recomendamos que sea su sistema local o su host local.

Antes de ejecutar Terraform:

  • Genere un par de claves SSH que le permita acceder a las instancias de Compute.

  • Generar una clave de firma de API utilizada para autenticar llamadas de API realizadas por Terraform

  • Establecer variables de entorno utilizadas por Terraform para autenticar el acceso y ejecutar sus planes.

Después de completar estos pasos, está listo para aplicar los archivos de configuración de Terraform para crear los componentes de infraestructura en Oracle Cloud Infrastructure.

Instalar Terraform

Para instalar Terraform en un sistema Linux o similar a UNIX, descargue el paquete adecuado del sitio web Terraform.

  1. Vaya a https://www.terraform.io/downloads.html .
  2. Descargue el paquete aplicable al sistema local.
  3. Extraiga el paquete a la ruta /usr/local/bin/.
    No se requiere ninguna instalación adicional. Terraform ya está instalado y listo para usar.

    También puede extraer Terraform a cualquier otra ubicación del sistema local. Asegúrese de que la ubicación se agrega a la variable PATH en el sistema.

  4. Para verificar la instalación y comprobar la versión, abra un terminal y ejecute terraform -version.
    Verá la versión de Terraform que se muestra en la salida. Por ejemplo: Terraform v0.11.8

Descarga de módulos de Terraform

Para empezar a crear componentes de infraestructura en Oracle Cloud Infrastructure mediante Terraform, descargue los módulos Terraform.

  1. Utilice Git o un explorador web para clonar o descargar los módulos de Terraform en su sistema local. Haga clic en Código de Descarga en la navegación izquierda para el enlace al repositorio de Git.
  2. Descomprima o extraiga los módulos de Terraform en un directorio del sistema local.
  3. Desplácese hasta el directorio en el que se encuentran los módulos de Terraform. Ejecute terraform init. También se descargará el proveedor de Oracle Cloud Infrastructure para Terraform.
    Terraform inicializa los módulos junto con el plugin de proveedor de OCI. Cuando termine la inicialización, verá el mensaje Terraform has been successfully initialized!

Generar un par de claves SSH para acceder a los hosts básicos

Un par de claves SSH se utiliza para acceder de forma segura a las instancias creadas en subredes públicas. Genera un par de claves SSH en el host local. A continuación, los módulos de Terraform agregan la clave pública SSH a los hosts de base. Cuando necesite conectarse al host de la base a través de Internet público, proporcione la clave privada SSH para autenticar el acceso.

Puede usar la utilidad ssh-keygen para generar un par de claves SSH. No establezca una contraseña para su clave SSH.

  • Para generar un par de claves SSH con la utilidad ssh-keygen, en un terminal, introduzca: ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    En este comando:
    • -t rsa especifica que la clave se debe generar con el algoritmo RSA

    • -N "" especifica la contraseña que desea asociar a esta clave. No introduzca nada entre las ofertas. La clave se crea sin una contraseña.

    • -b 2048 especifica que desea generar una clave de 2048bits. Éste es el valor por defecto y también es el valor mínimo recomendado.

    • -C "<key_name>" especifica el nombre de este par de claves.

    • -f <path/root_name> especifica la ubicación en la que se guarda la clave 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 la ubicación especificada. Anote esta ubicación.

Generar un par de claves SSH para acceder a otras instancias

Los hosts básicos se utilizan para activar el reenvío SSH a otras instancias que no tienen direcciones IP públicas y no permiten el acceso a través de Internet pública. Para acceder de forma segura a otras instancias desde el host de la base, utilice un par de claves SSH donde la clave pública almacenada en instancias en subredes privadas coincida con una clave privada almacenada en la máquina local. Se recomienda que este par de claves SSH no sea el mismo que el par de claves SSH utilizado para acceder al host de la base.

Utilice ssh-keygen en el host local para generar otro par de claves SSH. Tome nota de la ubicación en la que guarda este par de claves SSH.

Generación de una clave de firma de API

Debe proporcionar un par de claves RSA en formato Privacy Enhanced Mail (PEM) para autenticar el script Terraform con Oracle Cloud Infrastructure. Tenga en cuenta que esta clave de firma de API no es la misma que el par de claves SSH que usa para acceder a sus instancias. Puede utilizar OpenSSL para generar este par de claves.

  1. Cree un directorio oculto en el área de inicio para almacenar la clave de PEM. Introduzca: mkdir ~/.oci
  2. Utilice OpenSSL para generar una clave privada. No olvide especificar 2048 bits o superior al generar la clave privada. Introduzca: openssl genrsa -out ~/.oci/key_name.pem 2048
  3. Cambie los permisos de la clave privada para asegurarse de que sólo usted puede leer la clave privada. Introduzca: chmod go-rwx ~/.oci/key_name.pem
  4. A continuación, utilice OpenSSL para generar la clave pública para la clave privada proporcionada. Introduzca: openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
Puede almacenar su clave de firma de API en cualquier otra ubicación de su elección. Sin embargo, asegúrese de tener una nota de esta ubicación.

Carga de la clave de firma de API mediante la consola

Después de generar una clave de firma de API, debe cargar la clave pública para el usuario asociado en Oracle Cloud Infrastructure. La primera vez que cargue una clave de firma de API, debe utilizar la consola. Posteriormente, también puede utilizar la API para cargar una clave de API.

  1. Inicie sesión en la consola de Oracle Cloud Infrastructure.
  2. Haga clic en Identidad y, a continuación, en Usuarios.
  3. Haga clic en el usuario para el que desea agregar la clave de firma de API.
  4. En la página de detalles del usuario, haga clic en Agregar clave pública.
  5. En el sistema local, para copiar la clave pública, introduzca: cat ~/.oci/key_name_public.pem | pbcopy
    Si ha guardado la clave en una ubicación diferente, introduzca la ruta de acceso a esa ubicación en su lugar.
  6. En la consola, pegue el valor de clave pública y haga clic en Agregar.

Definir Variables de Entorno

Los módulos de Terraform que se proporcionan aquí permiten definir las variables de entorno especificando los valores necesarios en un archivo de texto. A continuación, puede asignar una fuente al archivo para asegurarse de que todas las variables de entorno necesarias se hayan definido correctamente.

Antes de empezar, conéctese a la consola de Oracle Cloud Infrastructure. Utilizará la consola para buscar la siguiente información.

  • Identificador de Oracle Cloud Infrastructure de arrendamiento (OCID)

  • El usuario OCID

  • Huella de la clave de firma de API que desea utilizar

  • Región

  • OCID del compartimento

Asegúrese también de conocer la ubicación donde su clave de firma de API y su par de claves SSH se almacenan en su sistema local.

  1. En el sistema local, navegue hasta el directorio donde se encuentran los módulos de Terraform.
  2. Abra el archivo env-vars en un editor de texto.
  3. El archivo env-vars tiene cuatro secciones. Comience con la sección de detalles de autenticación.
    1. Introduzca el OCID de arrendamiento. Puede encontrar el OCID de arrendamiento en la parte inferior de la consola de Oracle Cloud Infrastructure. Es una cadena similar a: ocid1.tenancy.oc1..aaaaa.... Pegue este valor en el archivo env-vars.
    2. Introduzca el usuario OCID. Para buscar al usuario OCID, en la Consola de Oracle Cloud Infrastructure, haga clic en Identidad y, a continuación, en Usuarios. Se muestra la lista de usuarios junto con el OCID del usuario. Haga clic en Copiar debajo del nombre de usuario para copiar el OCID de usuario necesario. Pegue este valor en el archivo env-vars.
    3. Introduzca la huella de la clave de firma de API. En la consola de Oracle Cloud Infrastructure, en la página Usuarios , haga clic en el usuario para ver la página de detalles de usuario. Copie la huella de la clave de API de la clave que aparece en la sección de claves de API . Pegue este valor en el archivo env-vars.
    4. Introduzca la ruta de acceso completa y el nombre de archivo de la clave privada de API en el sistema local.
  4. En la sección de región del archivo env-vars, introduzca la región en la que desea crear los componentes de infraestructura. La región que está visualizando se muestra en la parte superior de la consola de Oracle Cloud Infrastructure. También puede utilizar la consola para buscar otras regiones a las que tenga acceso.
  5. En la sección de compartimento del archivo env-vars, introduzca el OCID del compartimento en el que desea crear los componentes de infraestructura. Asegúrese de que el usuario que ha especificado anteriormente pertenece a un grupo que tiene los permisos necesarios para el compartimento especificado aquí. Para encontrar el OCID del compartimento, vaya a la consola de Oracle Cloud Infrastructure. Haga clic en Identidad y, a continuación, en Compartimentos. Se muestra la lista de compartimentos, junto con el OCID del compartimento. Haga clic en Copiar debajo del nombre del compartimento para copiar el OCID del compartimento necesario. Pegue este valor en el archivo env-vars.
  6. En la sección de claves públicas/privadas del archivo env-vars, para los hosts de base y otras instancias, introduzca la ruta de acceso completa y el nombre de archivo de las claves SSH públicas y privadas adecuadas en el sistema local. La clave privada debe tener el formato openssh.
  7. Compruebe que ha introducido todos los valores correctamente. Si ha omitido algún valor, se le pedirá que introduzca al ejecutar Terraform. Si ha proporcionado valores incorrectos, se producirá un error en Terraform. Cuando esté satisfecho con que todos los valores sean correctos, guarde y cierre el archivo env-vars.
  8. Para definir las variables de entorno especificadas en el archivo env-vars, abra un terminal y navegue hasta el directorio en el que se encuentran los módulos de Terraform. Introduzca: source ./env-vars

Verificar Configuración de Terraform

Después de definir todas las variables de entorno necesarias, compruebe que está listo para ejecutar Terraform.

  • En un terminal, navegue hasta el directorio donde se encuentran los módulos de Terraform. Introduzca: terraform plan
    La salida de este comando muestra el plan de ejecución de todas las configuraciones de todos los módulos del directorio actual. En esta salida se describen las acciones que realizará Terraform para cambiar la infraestructura actual para que coincida con las configuraciones. Cuando no se ha creado ningún componente, la salida muestra la lista de componentes que se crearán al ejecutar terraform apply. Este comando no crea ningún componente y es seguro ejecutarlo si sólo desea verificar que la configuración se ha realizado correctamente y que todos los valores de autenticación necesarios se han almacenado correctamente en las variables de entorno adecuadas.