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 de Terraform que crean los archivos de configuración que utilizará para crear los componentes de infraestructura necesarios.

El sistema donde se instala Terraform y se almacenan los módulos Teraform puede ser on-premises o en la nube. Para mayor comodidad, nos referiremos a esto como su sistema local o su host local.

Antes de ejecutar Terraform:

  • Generar un par de claves SSH que le permita acceder a sus instancias informáticas

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

  • Definir las variables de entorno que utiliza Terraform para autenticar el acceso y ejecutar sus planes

Al finalizar estos pasos, estará listo para aplicar los archivos de configuración de Terraform con el fin de crear los componentes de infraestructura en Oracle Cloud Infrastructure.

Instalación de Terraform

Para instalar Terraform en un sistema Windows, descargue el paquete adecuado del sitio web de Terraform.

  1. Vaya a https://www.terraform.io/downloads.html.
  2. Descargue el paquete aplicable a su sistema local.
  3. Extraiga el paquete en la carpeta C:\Program Files (x86).
    Esta ruta de acceso se utiliza como ejemplo. Sin embargo, también puede ejecutar Terraform en cualquier otra ubicación del sistema local.
  4. Actualice la variable de entorno de ruta para incluir la carpeta en la que 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 diferentes versiones de Windows.
      Se muestra el separador Avanzado de la ventana Propiedades del sistema.
    4. Haga clic en Variables de entorno cerca de la parte inferior de la ventana.
      Se muestra la ventana Variables de entorno.
    5. En el panel Variables del sistema, haga clic en Ruta de acceso y, a continuación, haga clic en Editar.
    6. Haga clic en Nuevo. Agregue la ruta a la carpeta en la que 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

Generación de un par de claves SSH para acceder a los hosts bastión

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

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

  1. Inicie PuTTYgen.
  2. Acepte el tipo de clave por defecto SSH-2 RSA y defina el número de bits de una clave generada como 2048 si aún no se ha definido.
  3. Haga clic en Generar y, a continuación, mueva el ratón por el área en blanco para generar aleatoriedad.
    La clave se genera y su valor aparece debajo de Clave pública para pegar en el archivo OpenSSH authorized_keys.
  4. Haga clic en Guardar clave privada. Se le solicita que confirme que desea guardar la clave sin una frase de contraseña. Haga clic en . Puede almacenar esta clave en cualquier ubicación, pero, por simplicidad, 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 el campo Clave pública para pegarla en el campo OpenSSH authorized_keys, copiarla y pegarla 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.
Ahora ha generado y almacenado el par de claves SSH en el sistema local. Asegúrese de anotar 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 de bastión se utilizan para activar el reenvío SSH a otras instancias que no tienen direcciones IP públicas y que no permiten el acceso a través de la red pública de Internet. Para acceder de forma segura a otras instancias desde el host bastión, utilice un par de claves SSH en el que la clave pública almacenada en instancias de subredes privadas coincida con una clave privada almacenada en la máquina local.

El par de claves SSH utilizado para activar el acceso del host bastión a otras instancias se debe generar mediante 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 a UNIX. Recuerde que el bastion host, que reenvía el tráfico SSH a otras instancias, utiliza una imagen de Oracle Linux.

  1. Inicie 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 mediante el algoritmo RSA

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

    • -b 2048 especifica que desea generar una clave de 2048 bits. Este 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 raíz de la clave pública y privada. La clave pública tiene .pub agregada al nombre raíz.

El par de claves SSH se genera y se guarda en la ubicación especificada. Anote esta ubicación.

Generar una clave de firma de API

Debe proporcionar un par de claves RSA en formato de Correo mejorado de privacidad (PEM) para autenticar el script de 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 utiliza para acceder a sus instancias. Puede generar este par de claves mediante OpenSSL en Git Bash. Debe haber instalado Git Bash en el sistema local.

  1. Inicie Git Bash.
  2. Cree una carpeta oculta para almacenar la clave PEM. Puede almacenar la clave PEM en cualquier ubicación, pero, por simplicidad, cree esta carpeta en la carpeta en la que se encuentran los módulos de Terraform. Asegúrese de anotar la ubicación en la que se almacena el par de claves. Navegue a 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 en la clave privada para asegurarse de que solo usted pueda 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, haga clic 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 hasta 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 la clave pública y haga clic en Agregar.