Configurazione degli agent Schematics per utilizzare un registro privato

Gli agent supportano l'utilizzo di provider Terraform personalizzati originati da un registro Terraform privato con lavori Terraform Schematics. Il supporto per utilizzare i provider personalizzati non è disponibile nel servizio a più tenant condiviso Schematics. È disponibile solo con gli agenti. gli agent non includono un registro del provider locale o privato. Inoltre, gli utenti possono configurare il registro sulla rete privata degli utenti accessibile agli agenti.

Per impostazione predefinita, quando vengono eseguiti i lavori Schematics, la CLI Terraform scarica i plug-in del provider Terraform richiesti o i moduli Terraform dal registro Terraform pubblico tramite internet o la rete pubblica. Quando un agent viene distribuito su una rete privata, le politiche di sicurezza stabiliscono che un proxy o un sito di mirroring deve essere utilizzato per scaricare e memorizzare nella cache i plug-in del provider. Inoltre, è possibile che si desideri ospitare i provider Terraform sviluppati in modo personalizzato in un registro privato per configurare le risorse specifiche dell'ambiente.

Per questi casi di utilizzo, Terraform consente la configurazione del download del provider da registri di provider alternativi utilizzando un blocco provider_installation nella configurazione della CLI Terraform. Ciò consente la personalizzazione del comportamento di installazione predefinito Terraform. Consulta la documentazione Terraform per l'installazione del provider per ulteriori dettagli sulla configurazione del download del provider.

Negli agent, le seguenti due variabili di ambiente dello spazio di lavoro possono essere utilizzate per configurare la CLI Terraform per fare riferimento a un repository alternativo e selezionare i provider per nome e spazio dei nomi da questo registro.

  • Il repository privato, il sito Web o l'istanza Artifactory di TF_NETWORK_MIRROR_URL Terraform in cui sono ospitati i provider Terraform personalizzati.
  • Il nome e lo spazio dei nomi TF_NETWORK_MIRROR_PROVIDER_NAME del provider che deve essere scaricato dall'ubicazione personalizzata. Fai riferimento alla documentazione Terraform per la denominazione del provider e gli spazi nomi. Se non specificato, il valore predefinito è tutti i provider in tutti gli spazi dei nomi "*/*" da scaricare dal registro privato.

Schematics genera automaticamente i seguenti parametri del file di configurazione della CLI Terraform. Durante l'esecuzione del lavoro, Terraform può utilizzare il registro privato per alcuni provider personalizzati che si intende utilizzare o in alternativa per tutti i provider.

provider_installation {
network_mirror {
url = "${TF_NETWORK_MIRROR_URL}"
include = ["${TF_NETWORK_MIRROR_PROVIDER_NAME}"]
}
direct {
exclude = ["TF_NETWORK_MIRROR_PROVIDER_NAME"]
}
}

Impostazione delle credenziali per accedere a un registro del provider privato

Per i registri privati, Terraform deve essere configurato con i token di accesso per il registro di destinazione. Negli agent, questi sono definiti a livello di area di lavoro utilizzando la variabile di ambiente TF_TOKEN_. Consulta la documentazione di Terraform Environment Variable Credentials per ulteriori dettagli sulla configurazione del passaggio dei token delle credenziali.

Utilizzo di Artifactory come registro del provider

Artifactory fornisce una soluzione alternativa per l'approvvigionamento dei provider Terraform e supporta completamente il protocollo di registro dei provider Terraform. Supporta repository remoti, locali e virtuali che aggregano i primi due tipi con un ordine di ricerca definito.

I repository locali sono repository locali fisici gestiti dall'utente. I repository fungono da registro privato Terraform in cui puoi ospitare i provider personalizzati e caricare e salvare manualmente i provider pubblici per eliminare la necessità di accesso alla rete pubblica. Oppure limitare i provider pubblici resi disponibili agli utenti Terraform.

I repository remoti possono fungere da proxy di cache sia per i registri Terraform privati che per il registro Terraform pubblico. L'implementazione di un repository remoto richiede ancora l'accesso a Internet pubblico. Qui l'accesso alla rete pubblica avviene tramite Artifactory e non tramite Terraform. In genere, molte organizzazioni hanno installazioni Artifactory esistenti, con regole di monitoraggio della rete e di accesso alla rete in atto per consentire l'accesso pubblico sicuro tramite Artifactory.

Un repository Terraform virtuale, che combina un repository locale con un repository proxy remoto, consente di ospitare localmente i provider personalizzati insieme a un accesso sicuro a qualsiasi provider Terraform pubblico aggiuntivo.

Configurazione di un registro provider Artifactory locale

Un registro Artifactory locale può essere utilizzato per ospitare provider sviluppati in modo personalizzato da utilizzare con gli agent su una rete privata di utenti. L'accesso Artifactory viene configurato utilizzando le seguenti variabili di ambiente dello spazio di lavoro per configurare la CLI Terraform in modo che faccia riferimento al repository locale e selezionare i provider per nome e spazio dei nomi da questo registro.

TF_TOKEN_name.artifactory.user.com:<artifactory_local_registry_token> TF_NETWORK_MIRROR_PROVIDER_NAME:"user_namespace/provider_name" TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-virtual/providers/

Fare riferimento alla documentazione e all'interfaccia utente Artifactory per ottenere i valori del token portatore e dell' URL del registro locale.

Il seguente esempio mostra che Schematics crea una configurazione della CLI Terraform.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-local/providers/"
                        include = ["user_namespace/provider_name"]
                }
                direct {
                        exclude = ["user_namespace/provider_name"]
                }
}  

Configurazione di un registro provider Artifactory remoto

Un registro Artifactory remoto può essere utilizzato per memorizzare nella cache i provider pubblici per l'utilizzo da Terraform, senza fornire l'accesso alla rete pubblica Terraform. L'accesso Artifactory viene configurato utilizzando le seguenti variabili di ambiente dello spazio di lavoro per configurare la CLI Terraform in modo da fare riferimento al repository remoto e richiamare tutti i provider utilizzando questo registro proxy.

TF_TOKEN_name.artifactory.user.com:<artifactory_remote_registry_token> TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-remote/providers/

Fare riferimento alla documentazione e all'interfaccia utente Artifactory per ottenere i valori del token portatore e dell' URL del registro remoto.

Il seguente esempio mostra che Schematics crea una configurazione della CLI Terraform.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-remote/providers/"
                        include = ["*/*"]
                }
                direct {
                        exclude = ["*/*"]
                }
        }

Configurazione di un registro del provider Artifactory virtuale

Un registro Artifactory virtuale può essere utilizzato per combinare l'hosting di provider personalizzati con la memorizzazione nella cache di provider pubblici per l'utilizzo da Terraform. L'accesso Artifactory è configurato utilizzando le seguenti variabili di ambiente dello spazio di lavoro per configurare la CLI Terraform per fare riferimento al repository virtuale e richiamare tutti i provider utilizzando questo registro proxy.

TF_TOKEN_name.artifactory.user.com:<artifactory_virtual_registry_token> TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com>/artifactory/api/terraform/<user-terraform-virtual/providers/

Fare riferimento alla documentazione e all'interfaccia utente Artifactory per ottenere i valori del token portatore e dell' URL del registro virtuale. Il repository virtuale deve essere configurato come aggregato di un registro locale e remoto come descritto nelle sezioni precedenti.

Il seguente esempio mostra che Schematics crea una configurazione della CLI Terraform.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-virtual/providers/"
                        include = ["*/*"]
                }
                direct {
                        exclude = ["*/*"]
                }
        }