Informazioni sulla sviluppo dei componenti dell'infrastruttura utilizzando Terraform

I moduli Terraform scaricati contengono script separati per creare e impostare vari componenti dell'infrastruttura. È possibile visualizzare e modificare questi script per comprendere i componenti che verranno creati e le caratteristiche di ciascun componente.

Il livello radice della directory Terraform contiene il file di configurazione principale main.tf, che fa riferimento ai file di configurazione in varie sottodirectory. Questa directory contiene anche i file che definiscono le variabili utilizzate nei file di configurazione Terraform oppure che contengono informazioni sul provider Terraform, sulle risorse dati o sull'output. Inoltre, i file di configurazione Terraform per creare liste di sicurezza e tabelle di instradamento si trovano anche al livello radice.

La directory Terraform contiene una directory modules. La directory modules contiene quanto segue:

  • bastion: utilizzato per creare gli host di base.

  • compute: utilizzato per creare le istanze UNIX e Windows Oracle Cloud Infrastructure Compute.

  • dbsystem: utilizzato per creare i sistemi Oracle Cloud Infrastructure Database.

  • filesystem: consente di creare il file system di memorizzazione Oracle Cloud Infrastructure.

  • loadbalancer: consente di creare istanze di bilanciamento del carico Oracle Cloud Infrastructure.

  • network: utilizzato per creare risorse di rete quali VCN (Virtual Cloud Network), subnet, gateway Internet, gateway di servizi, gateway di instradamento dinamico (DRG) e gateway NAT (Network Address Translation).

Informazioni sui componenti dell'infrastruttura da creare

Prima di creare qualsiasi componente dell'infrastruttura, è necessario fornire alcuni dati relativi al tipo, al numero e alla distribuzione dei componenti. Ad esempio, è possibile specificare il numero di istanze dell'applicazione richieste, se si desidera che tutte le risorse vengano create in un singolo dominio di disponibilità o tra due domini di disponibilità, l'edizione e la versione del database desiderati nei sistemi DB e così via.

Per fornire questo input, utilizzare il file terraform.tfvars nel livello radice della directory Terraform. Aprire il file terraform.tfvars in un editor di testo e immettere le informazioni necessarie. Fare riferimento al file README fornito nella directory radice di livello per i valori suggeriti che è possibile utilizzare in questo file.

I moduli Terraform per impostazione predefinita creano componenti in due domini di disponibilità. Ciò è determinato dal valore della variabile AD nel file terraform.tfvars. È possibile visualizzare o modificare i domini di disponibilità che verranno utilizzati per ospitare i componenti dell'infrastruttura modificando questo valore. Se si desidera creare componenti in un singolo dominio di disponibilità, impostare il valore di AD sul dominio di disponibilità richiesto 1, 2, or 3, nel file terraform.tfvars. Se si desidera creare componenti in due domini di disponibilità, specificare o modificare i numeri dei domini di disponibilità.

Se si applicano i file di configurazione Terraform utilizzando i valori predefiniti suggeriti senza apportare alcuna modifica, i seguenti componenti dell'infrastruttura vengono creati in due domini di disponibilità.

  • Una VCN con nome psftvcn e intervallo di indirizzi IP 172.16.0.0/16.

  • Sieen subnet, otto in ogni dominio di disponibilità. Ogni subnet ha un CIDR /24. Ad esempio: 172.16.4.0/24. Il numero aggiunto come suffisso a ogni nome di subnet indica il dominio di disponibilità in cui viene creata la subnet.

    • Subnet private per gli Application Server, con il nome appsubad1 e appsubad2.

    • Subnet private per i server Web, con il nome websubad1 e websubad2.

    • Le subnet private per i load balancer, con il nome lbsubad1 e lbsubad2.

    • Subnet private per i sistemi di database, con il nome dbsubad1 e dbsubad2.

    • Subnet private per i server ElasticSearch, con il nome essubad1 e essubad2

    • Subnet private per le istanze di PeopleTools, con il nome toolsssubad1 e toolssubad2.

    • Subnet private per il servizio file system, con il nome fsssubad1 e fsssubad2.

    • Le subnet pubbliche per gli host di base con il nome bassubad1 e bassubad2.

  • Le seguenti tabelle di instradamento. L'etichetta DNS per la VCN specificata nel file terraform.tfvars è preceduta dal nome di ogni tabella di instradamento.

    • Tabella di instradamento predefinita, senza regole.

    • Una tabella di instradamento privata, psftvcnpvtrt,, che dispone di regole di instradamento per instradare il traffico dello storage degli oggetti al gateway dei servizi e a tutto il traffico verso l'istanza NAT.

    • Una tabella di instradamento pubblica, psftvcnpubrt, con una regola di instradamento per instradare il traffico al gateway Internet.

  • Le liste di sicurezza riportate di seguito.

    • La lista di sicurezza predefinita.

    • Un elenco di sicurezza per la subnet degli Application Server, con il nome AppSecList.

    • Una lista di sicurezza per la subnet host di base con il nome BastionSecList.

    • Una lista di sicurezza per la subnet del database, con il nome DBSecList.

    • Una lista di sicurezza per la subnet del server ElasticSearch, con il nome ESSecList.

    • Una lista di sicurezza per la subnet del server del file system con il nome FSSSecList.

    • Una lista di sicurezza per la subnet del load balancer, con il nome LBSecList.

    • Una lista di sicurezza per la subnet PeopleTools, con il nome PToolsSecList.

    • Un elenco di sicurezza per la subnet del server Web, con il nome WebSecList.

  • Un gateway Internet con il nome psftvcnigw. L'etichetta DNS specificata nel file terraform.tfvars ha come prefisso il nome del gateway Internet. Il gateway Internet connette l'asse della rete cloud a Internet. Il traffico dalla VCN a un indirizzo IP pubblico esterno alla rete VCN tramite il gateway Internet.

  • Un gateway di instradamento dinamico con il nome psftvcndrg. Il nome dell'etichetta DNS specificato nel file terraform.tfvars è preceduto dal nome del gateway di instradamento dinamico. Il gateway di instradamento dinamico fornisce un percorso per il traffico tra la tua VCN e destinazioni diverse da Internet, ad esempio il traffico alla tua rete on premise mediante IPSec VPN o Oracle Cloud Infrastructure FastConnect oppure il traffico verso una VCN in un'altra area mediante il peering VCN remoto.

  • Un gateway di servizi con il nome psftvcnsvcgtw. Il nome dell'etichetta DNS specificato nel file terraform.tfvars è preceduto dal nome del gateway di servizi. Il gateway di servizi consente alla tua rete VCN di accedere a servizi Oracle Cloud Infrastructure pubblici quali lo storage degli oggetti Oracle Cloud Infrastructure, ma senza esporre la rete VCN sulla rete Internet pubblica.

  • Le seguenti istanze di Oracle Cloud Infrastructure Compute sono distribuite in entrambi i domini di disponibilità. Il prefisso di ambiente specificato nel file terraform.tfvars ha come prefisso il nome di ogni istanza e il suffisso dell'area, del numero di dominio di disponibilità e del conteggio. A ogni istanza è associato un volume di avvio.

    • Application Server. Il numero di istanze di Application Server create e le relative forme vengono determinati dai valori specificati nel file terraform.tfvars.

    • Host di base.

  • Due sistemi Oracle Cloud Infrastructure Database, uno in ogni dominio di disponibilità. Il nome, la versione, l'edizione e altre proprietà dei sistemi Oracle Cloud Infrastructure Database sono determinati dai valori specificati nel file terraform.tfvars. I sistemi Oracle Cloud Infrastructure Database vengono creati nella subnet di database dbsubad1 e dbsubad2.

  • Viene creato un file system utilizzato per il posizionamento del software PeopleSoft nell'area intermedia. Il file system viene creato nella subnet del file system, fssubad1. Il MOUNT del file system viene eseguito su tutte le istanze Oracle Cloud Infrastructure Compute.

  • Due load balancer, uno in ogni dominio di disponibilità. Il prefisso di ambiente specificato nel file terraform.tfvars ha come prefisso il nome di ogni load balancer, mentre l'area e il conteggio hanno il suffisso. I load balancer si trovano nella subnet dei Web server, websubad1 e websubad2. Vengono creati anche il set di backend e i listener per i load balancer.

Crea componenti infrastruttura utilizzando Terraform

Dopo aver installato Terraform insieme al provider OCI e aver impostato le variabili di ambiente nel sistema locale, si è pronti ad applicare i moduli Terraform per creare i componenti dell'infrastruttura in Oracle Cloud Infrastructure.

  1. Nel sistema locale aprire un terminale oppure avviare PowerShell di Windows. Accedere alla directory in cui si trovano i moduli Terraform.
  2. Immettere: terraform apply
  3. Quando viene richiesto di confermare l'azione, immettere yes.
Terraform inizia a creare tutti i componenti specificati nei moduli Terraform nella directory corrente. L'output mostra gli oggetti in fase di creazione. Alcuni oggetti, ad esempio i sistemi di database, possono richiedere molto tempo per la creazione. Una volta creati tutti i componenti, Terraform visualizza un messaggio di completamento. Ad esempio: Apply complete! Resources: 90 added, 0 changed, 0 destroyed.

Nella sezione Outputs dell'output del comando, Terraform visualizza gli indirizzi IP pubblici e privati delle istanze create. Prendere nota degli indirizzi IP delle istanze alle quali si desidera connettersi.

In caso di errori, è possibile correggere tali errori ed eseguire nuovamente terraform apply. Assicurarsi di rieseguire questo comando nella stessa directory in cui è stato eseguito questo comando per la prima volta. Terraform controlla lo stato corrente dei componenti e crea i componenti che non esistono. Tenere presente, tuttavia, che se si esegue Terraform in una directory diversa o in un altro sistema locale che ha gli stessi moduli Terraform, Terraform considera questo come un nuovo set e crea tutte le risorse specificate nei vari file di configurazione. Se si desidera eseguire Terraform in un'altra directory o sistema locale per gestire le risorse esistenti, copiare i file di stato Terraform dalla directory esistente alla nuova directory o al nuovo sistema. In generale, tuttavia, si consiglia di non usare Terraform in un sistema o in una directory per gestire i componenti creati da Terraform in un altro sistema o in un'altra directory.