Acerca del desarrollo de componentes de infraestructura con Terraform

Los módulos de Terraform que ha descargado contienen scripts independientes para crear y configurar varios componentes de infraestructura. Puede ver y editar estos archivos de comandos para entender qué componentes se crearán y las características de cada componente.

El nivel raíz del directorio Terraform contiene el archivo de configuración principal, main.tf, que hace referencia a los archivos de configuración en varios subdirectorios. Este directorio también contiene archivos que definen variables utilizadas en los archivos de configuración de Terraform o que contienen información sobre el proveedor de Terraform, los recursos de datos o la salida. Además, los archivos de configuración de Terraform para crear listas de seguridad y tablas de rutas también se encuentran en el nivel raíz.

El directorio Terraform contiene un directorio modules. El directorio modules contiene los siguientes elementos:

  • bastion: se utiliza para crear hosts de base.

  • compute: se utiliza para crear instancias de UNIX y Windows Oracle Cloud Infrastructure Compute .

  • dbsystem: se utiliza para crear sistemas de Oracle Cloud Infrastructure Database .

  • filesystem: se utiliza para crear el sistema de archivos de almacenamiento de archivos de Oracle Cloud Infrastructure .

  • loadbalancer: se utiliza para crear instancias de Oracle Cloud Infrastructure Load Balancing .

  • network: se utiliza para crear recursos de red, como red virtual en la nube (VCN), subredes, gateway de Internet, gateway de servicio, gateway de enrutamiento dinámico (DRG) y gateway de traducción de direcciones de red (NAT).

Acerca de los componentes de infraestructura que se van a crear

Antes de crear componentes de infraestructura, debe proporcionar alguna entrada sobre el tipo, el número y la distribución de los componentes. Por ejemplo, puede especificar el número de instancias de aplicación que necesite, si desea que todos los recursos se creen en un único dominio de disponibilidad o en dos dominios de disponibilidad, la edición y la versión de la base de datos que desee en los sistemas de base de datos, etc.

Puede utilizar el archivo terraform.tfvars en el nivel raíz del directorio Terraform para proporcionar esta entrada. Abra el archivo terraform.tfvars en un editor de texto e introduzca la información necesaria. Consulte el archivo README proporcionado en el directorio de nivel raíz para conocer los valores sugeridos que se pueden utilizar en este archivo.

Los módulos de Terraform, por defecto, crean componentes en dos dominios de disponibilidad. Esto se rige por el valor de la variable AD en el archivo terraform.tfvars. Puede ver o modificar los dominios de disponibilidad que se utilizarán para alojar los componentes de la infraestructura editando este valor. Si desea crear componentes en un único dominio de disponibilidad, defina el valor de AD en el dominio de disponibilidad necesario 1, 2, or 3, en el archivo terraform.tfvars. Si desea crear componentes en dos dominios de disponibilidad, especifique o modifique los números de los dominios de disponibilidad.

Si aplica los archivos de configuración de Terraform mediante los valores por defecto sugeridos sin realizar ningún cambio, los siguientes componentes de infraestructura se crean en dos dominios de disponibilidad.

  • Una VCN con el nombre psftvcn y el rango de direcciones IP 172.16.0.0/16.

  • Dieciséis subredes, ocho en cada dominio de disponibilidad. Cada subred tiene un CIDR /24. Por ejemplo: 172.16.4.0/24. El número que tiene como sufijo el nombre de cada subred indica el dominio de disponibilidad en el que se crea la subred.

    • Las subredes privadas para los servidores de aplicaciones, con el nombre appsubad1 y appsubad2.

    • Las subredes privadas para los servidores web, con el nombre websubad1 y websubad2.

    • Las subredes privadas para los equilibradores de carga, con el nombre lbsubad1 y lbsubad2.

    • Las subredes privadas para los sistemas de base de datos, con el nombre dbsubad1 y dbsubad2.

    • Las subredes privadas para los servidores ElasticSearch, con el nombre essubad1 y essubad2

    • Las subredes privadas para las instancias de PeopleTools, con el nombre toolsssubad1 y toolssubad2.

    • Las subredes privadas para el servicio del sistema de archivos con el nombre fsssubad1 y fsssubad2.

    • Subredes públicas para los hosts de base, con el nombre bassubad1 y bassubad2.

  • Las siguientes tablas de rutas. La etiqueta DNS para la VCN especificada en el archivo terraform.tfvars tiene como prefijo el nombre de cada tabla de direccionamiento.

    • La tabla de rutas por defecto, que no tiene reglas.

    • Una tabla de rutas privadas, psftvcnpvtrt,, que tiene reglas de ruta para direccionar el tráfico de almacenamiento de objetos al gateway de servicio y todo el otro tráfico a la instancia NAT.

    • Una tabla de rutas públicas, psftvcnpubrt, que tiene una regla de ruta para direccionar el tráfico a la puerta de enlace de Internet.

  • Las siguientes listas de seguridad:

    • Lista de seguridad por defecto.

    • Lista de seguridad para la subred de los servidores de aplicaciones con el nombre AppSecList .

    • Una lista de seguridad para la subred de hosts de base con el nombre BastionSecList.

    • Lista de seguridad para la subred de la base de datos con el nombre DBSecList.

    • Lista de seguridad para la subred del servidor de ElasticSearch con el nombre ESSecList.

    • Lista de seguridad para la subred del servidor del sistema de archivos con el nombre FSSSecList.

    • Lista de seguridad para la subred del equilibrador de carga con el nombre LBSecList.

    • Una lista de seguridad para la subred de PeopleTools, con el nombre PToolsSecList.

    • Lista de seguridad para la subred del servidor web con el nombre WebSecList.

  • Una puerta de enlace de Internet con el nombre psftvcnigw. La etiqueta DNS especificada en el archivo terraform.tfvars tiene como prefijo el nombre del gateway de Internet. El gateway de Internet conecta la posición de la red en la nube con Internet. El tráfico de su VCN a una dirección IP pública fuera de la VCN pasa por el gateway de Internet.

  • Una puerta de enlace de enrutamiento dinámica con el nombre psftvcndrg. El nombre de etiqueta DNS especificado en el archivo terraform.tfvars tiene como prefijo el nombre de la puerta de enlace de enrutamiento dinámico. El gateway de enrutamiento dinámico proporciona una ruta para el tráfico entre su VCN y destinos distintos de Internet, por ejemplo, el tráfico a su red local mediante una VPN de IPSec u Oracle Cloud Infrastructure FastConnect , o el tráfico a una VCN en otra región con un intercambio de tráfico VCN remoto.

  • Una puerta de enlace de servicio con el nombre psftvcnsvcgtw. El nombre de etiqueta DNS especificado en el archivo terraform.tfvars tiene como prefijo el nombre de la puerta de enlace del servicio. El gateway de servicios permite a su VCN acceder a servicios públicos de Oracle Cloud Infrastructure como Oracle Cloud Infrastructure Object Storage , pero sin mostrar la VCN a la red pública de Internet.

  • Las siguientes instancias de Oracle Cloud Infrastructure Compute , distribuidas en ambos dominios de disponibilidad. El prefijo de entorno especificado en el archivo terraform.tfvars tiene como prefijo el nombre de cada instancia, y la región, el número de dominio de disponibilidad y el recuento tienen como sufijo. Cada instancia tiene un volumen de inicio asociado.

    • Servidores de aplicaciones. El número de instancias del servidor de aplicaciones creadas y sus formas se determina mediante los valores especificados en el archivo terraform.tfvars.

    • Hosts de Basación.

  • Dos sistemas Oracle Cloud Infrastructure Database , uno en cada dominio de disponibilidad. El nombre, la versión, la edición y otras propiedades de los sistemas de Oracle Cloud Infrastructure Database se determinan mediante los valores especificados en el archivo terraform.tfvars. Los sistemas Oracle Cloud Infrastructure Database se crean en la subred de la base de datos dbsubad1 y dbsubad2.

  • Se crea un sistema de archivos para almacenar en zona intermedia el software de PeopleSoft. El sistema de archivos se crea en la subred del sistema de archivos, fssubad1. El sistema de archivos se monta en todas las instancias de Oracle Cloud Infrastructure Compute .

  • Dos equilibradores de carga, uno en cada dominio de disponibilidad. El prefijo de entorno especificado en el archivo terraform.tfvars tiene como prefijo el nombre de cada equilibrador de carga, y la región y el recuento tienen como sufijo. Los equilibradores de carga están en la subred de los servidores web, websubad1 y websubad2. También se crean el juego de backend y los listeners para los equilibradores de carga.

Creación de Componentes de Infraestructura con Terraform

Después de instalar Terraform junto con el proveedor de OCI y definir las variables de entorno en el sistema local, está listo para aplicar los módulos Terraform para crear los componentes de infraestructura en Oracle Cloud Infrastructure .

  1. En el sistema local, abra un terminal o inicie Windows PowerShell. Desplácese hasta el directorio en el que se encuentran los módulos de Terraform.
  2. Introduzca: terraform apply
  3. Cuando se le solicite que confirme la acción, introduzca yes.
Terraform comienza a crear todos los componentes especificados en los módulos Terraform del directorio actual. En la salida se muestran los objetos que se están creando. Algunos objetos, como los sistemas de bases de datos, pueden tardar bastante en crearse. Cuando se hayan creado todos los componentes, Terraform muestra un mensaje de finalización. Por ejemplo: Apply complete! Resources: 90 added, 0 changed, 0 destroyed.

En la sección Outputs de la salida del comando, Terraform muestra las direcciones IP públicas y privadas de las instancias creadas. Tome nota de las direcciones IP de las instancias a las que desea conectarse.

Si detecta algún error, puede solucionarlo y volver a ejecutar terraform apply. Asegúrese de volver a ejecutar este comando en el mismo directorio donde ejecutó este comando la primera vez. Terraform comprueba el estado actual de los componentes y crea los componentes que no existen. No obstante, tenga en cuenta que si ejecuta Terraform en un directorio diferente o desde un sistema local diferente que tenga el mismo módulo Terraform, Terraform lo trata como una configuración nueva y crea todos los recursos especificados en los distintos archivos de configuración. Si desea ejecutar Terraform en un directorio diferente o en un sistema local para gestionar los recursos existentes, copie los archivos de estado de Terraform del directorio existente en el nuevo directorio o sistema. Sin embargo, en general, se recomienda no utilizar Terraform en un sistema o directorio para gestionar componentes creados por Terraform en otro sistema o directorio.