Destruction en masse de ressources et suppression de piles

Pour le compartiment spécifié, utilisez le script suivant pour supprimer toutes les piles dans Resource Manager et détruire toutes les ressources associées aux piles correspondantes.

Ce script exécute des travaux de destruction sur toutes les ressources provisionnées d'un compartiment, puis supprime toutes les piles associées.

  1. Mettez à jour l'OCID de compartiment dans le script suivant.
    Script pour les travaux de destruction automatisés et les suppressions de pile
    #!/bin/bash
    echo ""
    echo ""
    echo ""
    echo "This script destroys all provisioned resources and deletes all associated stacks in a compartment. "
    echo "Update the compartment OCID before you run the script."
    echo " "
    echo "**************************************************"
    echo "STACK DELETIONS CANNOT BE UNDONE."
    echo "**************************************************"
    echo ""
    echo "Starting to delete stacks from compartment id " $1
    echo "Are you sure you want to continue ?"
    select yn in "Yes" "No"; do
        case $yn in
            Yes )  break;;
            No ) echo "Exiting...";exit;;
        esac
    done
    
    stacks_to_be_deleted=$(oci resource-manager stack  list --compartment-id $1  --lifecycle-state=ACTIVE | jq -r ".data[].id")
    
    #stacks_to_be_deleted=$(oci resource-manager stack list -c ocid1.tenancy.oc1..<unique_ID> --lifecycle-state=ACTIVE)
    
    echo "Destroying Stacks"
    echo
    failedStackArr=()
    for stack in $stacks_to_be_deleted
    do
            echo "Creating a job to destroy stack : $stack"
            #stack_destroyed=$(oci resource-manager job create-destroy-job --stack-id $stack --execution-plan-strategy AUTO_APPROVED)      
    
            #echo "oci resource-manager stack delete --force --stack-id $stack.id"
    
            job_id_destroy_stack=$(oci resource-manager job create-destroy-job --stack-id $stack  --execution-plan-strategy AUTO_APPROVED | jq -r ".data.id")
            #poll for the status
            
    	echo "Destroy job OCID : $job_id_destroy_stack"
    	echo "Destroying resources provisioned by stack : $stack"
            
    	#poll for destroy job
            destroy_job_status="STARTED"
            while [ $destroy_job_status != "SUCCEEDED" -a  $destroy_job_status != "FAILED" ]
            do
                    sleep 5s
                    destroy_job_status=$(oci resource-manager job get --job-id $job_id_destroy_stack  | jq -r '.data."lifecycle-state"')
    
            done
    
            if [ $destroy_job_status == "SUCCEEDED" ]; then
                echo "Stack resources destroyed. Now deleting the stack $stack"
    	    echo		
                stack_deleted=$(oci resource-manager stack delete --stack-id $stack --force   | jq -r ".data.id")
            fi
    
            if [ $destroy_job_status == "FAILED" ]; then
                echo "Not able to destroy resources from stack $stack"
                failedStackArr+=($stack)
            fi
    done
    
    if [ ${#failedStackArr[@]} -gt 0 ]; then
    	echo "Not able to destroy resources and delete these stacks. Please run destroy jobs and delete stacks manually."
    	echo ${failedStackArr[@]}
    else
    	echo "Success. All resources have been destroyed and associated stacks have been deleted."
    fi 
    
    echo "done "
  2. Exécutez le script à l'aide de la commande suivante.
    ./destroy_delete_stacks_bulk_cloud_shell.sh <compartment_id>