Configuration des agents Schematics pour utiliser un registre privé
Les agents prennent en charge l'utilisation de fournisseurs Terraform personnalisés provenant d'un registre Terraform privé avec des travaux Terraform Schematics. La prise en charge de l'utilisation de fournisseurs personnalisés n'est pas disponible
dans le service partagé Schematics partagé. Il n'est disponible qu'avec les agents. les agents n'incluent pas de registre de fournisseur local ou privé. En outre, les utilisateurs peuvent configurer le registre sur le réseau privé des utilisateurs
accessible aux agents.
Par défaut, lorsque des travaux Schematics sont exécutés, l'interface de ligne de commande Terraform télécharge les plug-in de fournisseur Terraform requis ou les modules Terraform à partir du registre Terraform public via Internet ou le réseau public. Lorsqu'un agent est déployé sur un réseau privé, les règles de sécurité indiquent qu'un proxy ou un site miroir doit être utilisé pour le téléchargement et la mise en cache des plug-in de fournisseur. En outre, il peut être souhaitable d'héberger des fournisseurs Terraform personnalisés dans un registre privé pour configurer des ressources spécifiques à l'environnement.
Pour ces cas d'utilisation, Terraform permet la configuration du téléchargement de fournisseur à partir d'autres registres de fournisseur en utilisant un bloc provider_installation
dans la configuration de l'interface de ligne de
commande Terraform. Cela permet de personnaliser le comportement d'installation par défaut de Terraform. Consultez la documentation Terraform relative à l'installation du fournisseur pour plus de détails sur la configuration du téléchargement du fournisseur.
Dans les agents, les deux variables d'environnement d'espace de travail suivantes peuvent être utilisées pour configurer l'interface de ligne de commande Terraform afin de faire référence à un autre référentiel et de sélectionner des fournisseurs par nom et espace de nom dans ce registre.
- Le référentiel privé
TF_NETWORK_MIRROR_URL
Terraform, le site Web ou l'instance Artifactory dans laquelle les fournisseurs Terraform personnalisés sont hébergés. - Nom et espace de nom
TF_NETWORK_MIRROR_PROVIDER_NAME
du fournisseur à télécharger à partir de l'emplacement personnalisé. Reportez-vous à la documentation Terraform pour les espaces de nom et de nom de fournisseur. S'il n'est pas spécifié, il s'agit par défaut de tous les fournisseurs de tous les espaces de nom"*/*"
à télécharger à partir du registre privé.
Schematics génère automatiquement les paramètres de fichier de configuration de l'interface de ligne de commande Terraform suivants. Au cours de l'exécution du travail, Terraform peut utiliser le registre privé pour quelques fournisseurs personnalisés que vous avez l'intention d'utiliser ou pour tous les fournisseurs.
provider_installation {
network_mirror {
url = "${TF_NETWORK_MIRROR_URL}"
include = ["${TF_NETWORK_MIRROR_PROVIDER_NAME}"]
}
direct {
exclude = ["TF_NETWORK_MIRROR_PROVIDER_NAME"]
}
}
Définition des données d'identification pour accéder à un registre de fournisseur privé
Pour les registres privés, Terraform doit être configuré avec les jetons d'accès pour le registre cible. Dans les agents, ils sont définis au niveau de l'espace de travail à l'aide de la variable d'environnement TF_TOKEN_
. Pour
plus de détails sur la configuration de la transmission des jetons de données d'identification, voir la documentation Terraform Environment Variable Credentials.
Utilisation d' Artifactory comme registre de fournisseur
Artifactory fournit une solution alternative pour le sourçage des fournisseurs Terraform et prend entièrement en charge le protocole de registre de fournisseur Terraform. Il prend en charge les référentiels distants, locaux et virtuels qui regroupent les deux premiers types avec un ordre de recherche défini.
Les référentiels locaux sont des référentiels locaux physiques gérés par l'utilisateur. Les référentiels agissent comme un registre privé Terraform dans lequel vous pouvez héberger des fournisseurs personnalisés et télécharger et sauvegarder manuellement des fournisseurs publics afin d'éliminer la nécessité d'un accès au réseau public. Ou limitez les fournisseurs publics mis à la disposition des utilisateurs Terraform.
Les référentiels distants peuvent servir de proxy de mise en cache pour les registres Terraform privés et le registre Terraform public. L'implémentation d'un référentiel distant requiert toujours un accès à Internet public. Ici, l'accès au réseau public se fait via Artifactory et non via Terraform. Généralement, de nombreuses organisations disposent d'installations Artifactory existantes, avec des règles de surveillance du réseau et d'accès au réseau en place pour permettre un accès public sécurisé via Artifactory.
Un référentiel Terraform virtuel, combinant un référentiel local avec un référentiel de proxy distant, permet l'hébergement de fournisseurs personnalisés en local ainsi que l'accès sécurisé à des fournisseurs Terraform publics supplémentaires.
Configuration d'un registre de fournisseur Artifactory local
Un registre Artifactory local peut être utilisé pour héberger des fournisseurs personnalisés à utiliser avec des agents sur un réseau privé d'utilisateurs. L'accès à Artifactory est configuré à l'aide des variables d'environnement d'espace de travail suivantes pour configurer l'interface de ligne de commande Terraform afin qu'elle fasse référence au référentiel local et sélectionne les fournisseurs par nom et espace de nom dans ce registre.
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/
Reportez-vous à la documentation et à l'interface utilisateur d' Artifactory pour trouver les valeurs du jeton de support et de l' URL du registre local.
L'exemple suivant montre que Schematics génère une configuration d'interface de ligne de commande 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"]
}
}
Configuration d'un registre de fournisseur Artifactory distant
Un registre Artifactory distant peut être utilisé pour mettre en cache des fournisseurs publics à utiliser par Terraform, sans donner d'accès au réseau public Terraform. L'accès à Artifactory est configuré à l'aide des variables d'environnement d'espace de travail suivantes pour configurer l'interface de ligne de commande Terraform afin de faire référence au référentiel distant et d'extraire tous les fournisseurs à l'aide de ce registre de 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/
Reportez-vous à la documentation et à l'interface utilisateur d' Artifactory pour trouver les valeurs du jeton de support et de l' URL du registre distant.
L'exemple suivant montre que Schematics génère une configuration d'interface de ligne de commande Terraform.
provider_installation {
network_mirror {
url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-remote/providers/"
include = ["*/*"]
}
direct {
exclude = ["*/*"]
}
}
Configuration d'un registre de fournisseur Artifactory virtuel
Un registre Artifactory virtuel peut être utilisé pour combiner l'hébergement de fournisseurs personnalisés avec la mise en cache de fournisseurs publics à utiliser par Terraform. L'accès à Artifactory est configuré à l'aide des variables d'environnement d'espace de travail suivantes pour configurer l'interface de ligne de commande Terraform afin de faire référence au référentiel virtuel et d'extraire tous les fournisseurs à l'aide de ce registre de 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/
Reportez-vous à la documentation et à l'interface utilisateur d' Artifactory pour trouver les valeurs du jeton de support et de l' URL du registre virtuel. Le référentiel virtuel doit être configuré en tant qu'agrégat d'un registre local et distant, comme indiqué dans les sections précédentes.
L'exemple suivant montre que Schematics génère une configuration d'interface de ligne de commande Terraform.
provider_installation {
network_mirror {
url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-virtual/providers/"
include = ["*/*"]
}
direct {
exclude = ["*/*"]
}
}