Partager via


advanced_state_management.sh

Synopsis

Permet la gestion des fichiers d’état Terraform.

Syntaxe


advanced_state_management.sh [--parameterfile] <String> 
[--type] <String> 
[--operation] <String> 
[--terraform_keyfile] <String>
[--subscription] <String> 
[--storage_account_name] <String> 
[--tf_resource_name] <String>
[--azure_resource_id] <String> 
[--help]

Description

Vous pouvez utiliser ce script pour :

  • répertorie les ressources dans le fichier d’état Terraform.
  • ajoutez des ressources manquantes ou modifiées au fichier d’état Terraform.
  • supprimez les ressources du fichier d’état Terraform.

Ce script est utile si les ressources sont modifiées ou créées sans utiliser Terraform.

Exemples

Exemple 1

Répertoriez le contenu du fichier d’état Terraform.


parameter_file_name="DEV-WEEU-SAP01-X00.tfvars"
deployment_type="sap_system"
subscriptionID="<subscriptionId>"

filepart=$(echo "${parameter_file_name}" | cut -d. -f1)
key_file=${filepart}.terraform.tfstate

#This is the name of the storage account containing the terraform state files
storage_accountname="<storageaccountname>"

$DEPLOYMENT_REPO_PATH/deploy/scripts/advanced_state_management.sh                      \
  --parameterfile "${parameter_file_name}"        \
  --type "${deployment_type}"                     \
  --operation list                                \
  --subscription "${subscriptionID}"              \
  --storage_account_name "${storage_accountname}" \
  --terraform_keyfile "${key_file}"

Exemple 2

Importation d'une machine virtuelle


parameter_file_name="DEV-WEEU-SAP01-X00.tfvars"
deployment_type="sap_system"
subscriptionID="<subscriptionId>"

filepart=$(echo "${parameter_file_name}" | cut -d. -f1)
key_file=${filepart}.terraform.tfstate

#This is the name of the storage account containing the terraform state files
storage_accountname="<storageaccountname>"

#Terraform Resource name of the first
tf_resource_name="module.hdb_node.azurerm_linux_virtual_machine.vm_dbnode[0]"
                 
#Azure Resource id of the Virtual 
azure_resource_id="/subscriptions/<subscriptionId>/resourceGroups/DEV-WEEU-SAP01-X00/providers/Microsoft.Compute/virtualMachines/xxxxx"

$DEPLOYMENT_REPO_PATH/deploy/scripts/advanced_state_management.sh                      \
  --parameterfile "${parameter_file_name}"        \
  --type "${deployment_type}"                     \
  --operation import                              \
  --subscription "${subscriptionID}"              \
  --storage_account_name "${storage_accountname}" \
  --terraform_keyfile "${key_file}"               \
  --tf_resource_name "${tf_resource_name}"        \
  --azure_resource_id "${azure_resource_id}"

Exemple 3

Suppression d’un compte de stockage du fichier d’état


parameter_file_name="DEV-WEEU-SAP01-X00.tfvars"
deployment_type="sap_system"
subscriptionID="<subscriptionId>"

filepart=$(echo "${parameter_file_name}" | cut -d. -f1)
key_file=${filepart}.terraform.tfstate

#This is the name of the storage account containing the terraform state files
storage_accountname="<storageaccountname>"

#Terraform Resource name of the first
tf_resource_name="module.common_infrastructure.azurerm_storage_account.sapmnt[0]"
                 
$DEPLOYMENT_REPO_PATH/deploy/scripts/advanced_state_management.sh                      \
  --parameterfile "${parameter_file_name}"        \
  --type "${deployment_type}"                     \
  --operation remove                              \
  --subscription "${subscriptionID}"              \
  --storage_account_name "${storage_accountname}" \
  --terraform_keyfile "${key_file}"               \
  --tf_resource_name "${tf_resource_name}" 

Paramètres

--parameterfile

Définit le fichier de paramètres pour le système.

Type: String
Aliases: `-p`

Required: True

--type

Définit le type de système. Les valeurs valides sont sap_deployer, sap_library, sap_landscape et sap_system.

Type: String
Aliases: `-t`
Accepted values: sap_deployer, sap_landscape, sap_library, sap_system

Required: True

--operation

Définit l’opération à effectuer. Les valeurs valides sont sap_deployer, import, list et remove.

Type: String
Aliases: `-t`
Accepted values: import, list, remove

Required: True

--terraform_keyfile

Définit le nom du fichier d’état Terraform.

Type: String
Aliases: `-k`

Required: True

--subscription

Définit l’abonnement Azure cible.

Type: String
Aliases: `-s`

Required: False

--storageaccountname

Définit le nom du compte de stockage qui contient les fichiers d’état Terraform.

Type: String
Aliases: `-a`

Required: False

--tf_resource_name

Définit le nom de la ressource dans le fichier d’état Terraform.

Type: String
Aliases: `-n`

Required: False

--azure_resource_id

Définit l’ID de la ressource Azure à importer.

Type: String
Aliases: `-i`

Required: False

Notes

v 0.9 - Version initiale

Copyright (c) Microsoft Corporation. Sous licence du MIT.

Référentiel GitHub : Infrastructure d’automatisation du déploiement de SAP sur Azure