From 75f457579de4cc8b4e7cbc0aa8cf1f45e5401e34 Mon Sep 17 00:00:00 2001 From: OcheOps Date: Sat, 12 Jul 2025 19:08:47 +0100 Subject: [PATCH] Add Azure scripts for VM and blob storage management --- azure/VMs/create_vm.sh | 18 ++++++++++++++++++ azure/VMs/delete-azure-vm.sh | 31 +++++++++++++++++++++++++++++++ azure/azcli_login.sh | 8 ++++++++ azure/blobstorage/create-blob.sh | 21 +++++++++++++++++++++ azure/blobstorage/delete-blob.sh | 18 ++++++++++++++++++ azure/resourcegroups/create-rg.sh | 6 ++++++ azure/resourcegroups/delete-rg.sh | 5 +++++ 7 files changed, 107 insertions(+) create mode 100644 azure/VMs/create_vm.sh create mode 100644 azure/VMs/delete-azure-vm.sh create mode 100644 azure/azcli_login.sh create mode 100644 azure/blobstorage/create-blob.sh create mode 100644 azure/blobstorage/delete-blob.sh create mode 100644 azure/resourcegroups/create-rg.sh create mode 100644 azure/resourcegroups/delete-rg.sh diff --git a/azure/VMs/create_vm.sh b/azure/VMs/create_vm.sh new file mode 100644 index 0000000..df69bce --- /dev/null +++ b/azure/VMs/create_vm.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +RESOURCE_GROUP="dev-resources" +LOCATION="eastus" +VM_NAME="myAzureVM" + +# Create resource group +az group create --name "$RESOURCE_GROUP" --location "$LOCATION" + +# Create VM +az vm create \ + --resource-group "$RESOURCE_GROUP" \ + --name "$VM_NAME" \ + --image UbuntuLTS \ + --admin-username azureuser \ + --generate-ssh-keys + +echo "VM $VM_NAME created successfully!" \ No newline at end of file diff --git a/azure/VMs/delete-azure-vm.sh b/azure/VMs/delete-azure-vm.sh new file mode 100644 index 0000000..72f93a0 --- /dev/null +++ b/azure/VMs/delete-azure-vm.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Set these variables +RESOURCE_GROUP="dev-resources" +VM_NAME="myAzureVM" + +# Delete VM +echo "Deleting VM: $VM_NAME..." +az vm delete \ + --resource-group "$RESOURCE_GROUP" \ + --name "$VM_NAME" \ + --yes + +# Optionally delete associated resources +echo "Deleting related NIC..." +az network nic delete \ + --name "${VM_NAME}VMNic" \ + --resource-group "$RESOURCE_GROUP" + +echo "Deleting public IP..." +az network public-ip delete \ + --name "${VM_NAME}PublicIP" \ + --resource-group "$RESOURCE_GROUP" + +echo "Deleting OS disk..." +OS_DISK_ID=$(az vm show --name "$VM_NAME" --resource-group "$RESOURCE_GROUP" --query "storageProfile.osDisk.managedDisk.id" -o tsv) +if [[ -n "$OS_DISK_ID" ]]; then + az disk delete --ids "$OS_DISK_ID" --yes +fi + +echo "✔️ VM and associated resources deleted." diff --git a/azure/azcli_login.sh b/azure/azcli_login.sh new file mode 100644 index 0000000..826f8a4 --- /dev/null +++ b/azure/azcli_login.sh @@ -0,0 +1,8 @@ +# Install Azure CLI (Linux) +curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + +# Login +az login + +# Set default subscription (if needed) +az account set --subscription "" diff --git a/azure/blobstorage/create-blob.sh b/azure/blobstorage/create-blob.sh new file mode 100644 index 0000000..ea40f35 --- /dev/null +++ b/azure/blobstorage/create-blob.sh @@ -0,0 +1,21 @@ +#!/bin/bash +RESOURCE_GROUP="dev-resources" +STORAGE_ACCOUNT="ocheblob$RANDOM" +CONTAINER_NAME="familydata" + +az storage account create \ + --name "$STORAGE_ACCOUNT" \ + --resource-group "$RESOURCE_GROUP" \ + --location eastus \ + --sku Standard_LRS + +KEY=$(az storage account keys list --account-name "$STORAGE_ACCOUNT" --query "[0].value" -o tsv) + +az storage container create \ + --name "$CONTAINER_NAME" \ + --account-name "$STORAGE_ACCOUNT" \ + --account-key "$KEY" + +echo "✅ Blob container '$CONTAINER_NAME' created in account '$STORAGE_ACCOUNT'." +echo "Blob storage setup complete in resource group '$RESOURCE_GROUP'." +echo "You can now upload files to the container using Azure CLI or Azure Storage Explorer." \ No newline at end of file diff --git a/azure/blobstorage/delete-blob.sh b/azure/blobstorage/delete-blob.sh new file mode 100644 index 0000000..d7757d4 --- /dev/null +++ b/azure/blobstorage/delete-blob.sh @@ -0,0 +1,18 @@ +#!/bin/bash +RESOURCE_GROUP="dev-resources" +STORAGE_ACCOUNT="ocheblob1234" # same as used before +CONTAINER_NAME="familydata" + +KEY=$(az storage account keys list --account-name "$STORAGE_ACCOUNT" --query "[0].value" -o tsv) + +az storage container delete \ + --name "$CONTAINER_NAME" \ + --account-name "$STORAGE_ACCOUNT" \ + --account-key "$KEY" + +az storage account delete \ + --name "$STORAGE_ACCOUNT" \ + --resource-group "$RESOURCE_GROUP" \ + --yes + +echo "🗑️ Storage account '$STORAGE_ACCOUNT' and container '$CONTAINER_NAME' deleted." \ No newline at end of file diff --git a/azure/resourcegroups/create-rg.sh b/azure/resourcegroups/create-rg.sh new file mode 100644 index 0000000..853e8ef --- /dev/null +++ b/azure/resourcegroups/create-rg.sh @@ -0,0 +1,6 @@ +#!/bin/bash +RESOURCE_GROUP="dev-resources" +LOCATION="eastus" + +az group create --name "$RESOURCE_GROUP" --location "$LOCATION" +echo "✅ Resource group '$RESOURCE_GROUP' created." diff --git a/azure/resourcegroups/delete-rg.sh b/azure/resourcegroups/delete-rg.sh new file mode 100644 index 0000000..e841d04 --- /dev/null +++ b/azure/resourcegroups/delete-rg.sh @@ -0,0 +1,5 @@ +#!/bin/bash +RESOURCE_GROUP="dev-resources" + +az group delete --name "$RESOURCE_GROUP" --yes --no-wait +echo "🗑️ Resource group '$RESOURCE_GROUP' scheduled for deletion."