Utiliser des ressources existantes
Il arrive qu’une configuration doive manipuler une ressource Azure existante. Par exemple déployer une machine virtuelle dans réseau virtuel existant. Deux options permettent d’utiliser ces ressources externes : Import et Data source.
Import
La commande terraform import
permet d’importer des ressources dans une configuration en les ajoutant au state. Pour retrouver cette ressource, on utilise son identifiant Azure :
$ az group show --name to-import-rg --query id --output tsv
Avant d’importer la ressource, on crée son bloc dans la configuration :
resource "azurerm_resource_group" "t-to-import-rg" {
name = "to-import-rg" (1)
location = "westeurope"
}
1 | Nom associé de la ressource dans Azure |
$ terraform import azurerm_resource_group.t-to-import-rg /subscriptions/xxx/resourceGroups/to-import-rg
Data source
Les Data sources sont un moyen d’extraire de l’information provenant de l’extérieur de la configuration déployée par Terraform, ou provenant d’une autre configuration, et d’utiliser ses propriétés. Ces ressources externes ne sont pas importées dans le state et seront donc pas impactées en cas de destroy
ou de modifications externes. Les data sources sont associées à des providers en se basant sur leur préfixe, par exemple azurerm_
.
data "azurerm_subscription" "current" {
}
output "current_subscription_display_name" {
value = data.azurerm_subscription.current.display_name (1)
}
1 | Affichage du nom de la subscription courante |
Un exemple d’utilisation de data source consisterait à récupérer les informations sensibles, contenues dans un Key Vault.