Acerca de la Configuración de Terraform en Sistemas Windows

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 Windows, descargue el paquete correspondiente 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 carpeta C:\Program Files (x86).
    Esta ruta se utiliza como ejemplo. Sin embargo, también puede ejecutar el ejecutable Terraform en cualquier otra ubicación del sistema local.
  4. Actualice la variable de entorno de ruta para incluir la carpeta donde se encuentra el ejecutable de Terraform.
    1. Vaya al Panel de control.
    2. Haga clic en Sistema.
    3. En un sistema Windows 10, haga clic en Configuración avanzada del sistema. Esta opción puede variar en versiones distintas de Windows.
      Aparece la ficha Advanced (Avanzado ) de la ventana System Properties (Propiedades del sistema ).
    4. Haga clic en Variables de entorno cerca de la parte inferior de la ventana.
      Aparece la ventana Variables de Entorno .
    5. En el panel Variables del sistema , haga clic en Ruta y, a continuación, en Editar.
    6. Haga clic en Nuevo. Agregue la ruta a la carpeta donde se encuentra el ejecutable de Terraform.
    7. Haga clic en Aceptar para guardar los cambios y, a continuación, haga clic en Aceptar para salir de las ventanas Variables de Entorno . A continuación, vuelva a hacer clic en Aceptar para salir de la ventana Propiedades del sistema .
  5. Para verificar la instalación y comprobar la versión, inicie Windows PowerShell e introduzca: 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 cualquier carpeta del sistema local.
  3. Inicie Windows PowerShell y navegue hasta la carpeta donde se encuentran los módulos de Terraform. Introduzca 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, proporciona la clave privada SSH para autenticar el acceso.

Puede generar un par de claves SSH utilizando PuTTYgen. No establezca una contraseña para su clave SSH.

  1. Inicie PuTTYgen.
  2. Acepte el tipo de clave por defecto de SSH-2 RSA y defina el número de bits en una clave generada en 2048 si aún no está definida.
  3. Haga clic en Generar y, a continuación, mueva el mouse sobre el área en blanco para generar aleatoriamente.
    La clave se genera y su valor aparece bajo Clave pública para pegarla en el archivo authorized_keys de OpenSSH.
  4. Haga clic en Save private key (Guardar clave privada). Se le solicita que confirme que desea guardar la clave sin una frase de contraseña. Haga clic en Sí. Puede almacenar esta clave en cualquier ubicación, pero para simplicidad, almacénela en la misma carpeta en la que se encuentran los módulos de Terraform.
  5. A continuación, para guardar la clave pública, seleccione toda la clave generada que aparece en la clave pública para pegarla en el campo Archivo authorized_keys de OpenSSH , cópiela y péguela en un archivo de texto. Guarde este archivo en la misma ubicación que la clave privada. No utilice el botón Guardar clave pública porque no guarda la clave en formato OpenSSH.
Ya ha generado y almacenado su par de claves SSH en el sistema local. Asegúrese de tomar una nota de la ubicación en la que se almacena este par de claves.

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.

El par de claves SSH utilizado para permitir el acceso desde el host de base a otras instancias se debe generar con una utilidad como OpenSSL o ssh-keygen. No puede utilizar un par de claves SSH generado en Windows con PuTTY porque el formato .ppk utilizado por PuTTY no está soportado en Oracle Linux u otros sistemas operativos similares. Recuerde que el host de base, que reenvía el tráfico de SSH a otras instancias, utiliza una imagen de Oracle Linux.

  1. Iniciar Git Bash.
  2. 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.

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 generar este par de claves utilizando OpenSSL en Git Bash. Debe haber instalado Git Bash en el sistema local.

  1. Iniciar Git Bash.
  2. Cree una carpeta oculta para almacenar la clave de PEM. Puede almacenar la clave PEM en cualquier ubicación, pero para simplicidad, crear esta carpeta en la carpeta donde se encuentran los módulos de Terraform. Asegúrese de tomar una nota de la ubicación en la que almacena el par de claves. Navegue hasta esa ubicación e introduzca: mkdir ./.oci
  3. Para crear la clave de firma de API, introduzca: openssl genrsa -out ./.oci/key_name.pem 2048
  4. 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
  5. A continuación, 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
La clave de firma de API pública y privada se almacena en la carpeta especificada.

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, inicie Git Bash. Navegue a la carpeta en la que ha almacenado el par de claves de firma de API.
  6. Para copiar la clave pública, introduzca: cat ./key_name_public.pem. Se muestra el valor de clave pública. Copie este valor, incluidas las líneas -----BEGIN PUBLIC KEY----- y -----END PUBLIC KEY-----.
  7. 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.ps1 en un editor de texto.
  3. El archivo env-vars tiene varias 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 las secciones de claves públicas/privadas del archivo env-vars, introduzca la ruta de acceso completa y el nombre de archivo de la clave pública SSH, así como la clave privada SSH en el sistema local. Asegúrese de que las claves públicas y privadas especificadas para utilizarlas en los hosts de base son el par de claves creado con PuTTY y las claves especificadas para utilizarlas en otras instancias son el par de claves creado con ssh-keygen.
  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, inicie Windows PowerShell, navegue hasta la carpeta en la que se encuentran los módulos de Terraform e introduzca: env-vars.ps1
    Se ejecuta el archivo env-vars.ps1, que define todas las variables especificadas en este archivo para la sesión actual.
  9. Para comprobar que se han definido las variables de entorno, introduzca: dir env:
    Muestra todas las variables de entorno. Puede ver las variables TF_VAR para verificar que sus valores se han definido como esperados.

Verificar Configuración de Terraform

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

  • Inicie Windows PowerShell y navegue hasta la carpeta 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.