diff --git a/10_migration-backup/site-recovery/README.md b/10_migration-backup/site-recovery/README.md new file mode 100644 index 0000000..3f76dfe --- /dev/null +++ b/10_migration-backup/site-recovery/README.md @@ -0,0 +1,56 @@ +# Terraform Template - Azure Site Recovery (Recovery Services Vault) + +Costa Rica + +[![GitHub](https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff)](https://github.com/) +[brown9804](https://github.com/brown9804) + +Last updated: 2025-06-13 + +---------- + +> This template contains Terraform configurations to create and manage an Azure Recovery Services Vault for Site Recovery. + +

+ image +

+ +## File Descriptions + +- **main.tf**: Contains the main configuration for creating the Recovery Services Vault. +- **variables.tf**: Defines the input variables used in the Terraform configuration. +- **terraform.tfvars**: Provides default values for the variables defined in `variables.tf`. +- **outputs.tf**: Defines the outputs such as the Recovery Services Vault ID. + +## Variables + +| Variable Name | Description | Type | Example Value | +|---------------------- |--------------------------------------------------|--------|-----------------------------| +| `resource_group_name` | The name of the resource group | string | `"my-siterecovery-rg"` | +| `location` | The Azure region to deploy resources | string | `"eastus"` | +| `vault_name` | The name of the Recovery Services Vault | string | `"my-siterecovery-vault"` | +| `sku` | The SKU for the Recovery Services Vault | string | `"Standard"` | +| `tags` | A map of tags to assign to resources | map | `{ Environment = "SiteRecovery", Owner = "IT" }` | + +## Usage + +1. Clone the repository and navigate to the site-recovery directory. +2. Update the `terraform.tfvars` file with your values. +3. Initialize and apply the Terraform configuration: + +```bash +terraform init +terraform plan +terraform apply +``` + +## Outputs + +| Output Name | Description | +|----------------------------|---------------------------------------------| +| `recovery_services_vault_id` | The ID of the Recovery Services Vault | + +
+

Total Visitors

+ Visitor Count +
diff --git a/10_migration-backup/site-recovery/main.tf b/10_migration-backup/site-recovery/main.tf new file mode 100644 index 0000000..5a10d20 --- /dev/null +++ b/10_migration-backup/site-recovery/main.tf @@ -0,0 +1,17 @@ +# main.tf +# This file contains the main configuration for creating an Azure Recovery Services Vault. + +# Resource Group for Site Recovery +resource "azurerm_resource_group" "site_recovery" { + name = var.resource_group_name + location = var.location +} + +# Azure Recovery Services Vault for Site Recovery +resource "azurerm_recovery_services_vault" "site_recovery" { + name = var.vault_name + location = azurerm_resource_group.site_recovery.location + resource_group_name = azurerm_resource_group.site_recovery.name + sku = var.sku + tags = var.tags +} \ No newline at end of file diff --git a/10_migration-backup/site-recovery/outputs.tf b/10_migration-backup/site-recovery/outputs.tf new file mode 100644 index 0000000..557abef --- /dev/null +++ b/10_migration-backup/site-recovery/outputs.tf @@ -0,0 +1,7 @@ +# outputs.tf +# This file defines the outputs for the Azure Migrate configuration. + +output "recovery_services_vault_id" { + description = "The ID of the Recovery Services Vault" + value = azurerm_recovery_services_vault.site_recovery.id +} \ No newline at end of file diff --git a/10_migration-backup/site-recovery/provider.tf b/10_migration-backup/site-recovery/provider.tf new file mode 100644 index 0000000..f3f9b2d --- /dev/null +++ b/10_migration-backup/site-recovery/provider.tf @@ -0,0 +1,19 @@ +# provider.tf +# This file configures the Azure provider to interact with Azure resources. +# It specifies the required provider and its version, along with provider-specific configurations. + +terraform { + required_version = ">= 1.8, < 2.0" + # Specify the required provider and its version + required_providers { + azurerm = { + source = "hashicorp/azurerm" # Source of the AzureRM provider + version = "~> 4.16.0" # Version of the AzureRM provider + } + } +} + +provider "azurerm" { + features {} # Enable all features for the AzureRM provider + subscription_id = var.subscription_id # Use the subscription ID variable +} diff --git a/10_migration-backup/site-recovery/terraform.tfvars b/10_migration-backup/site-recovery/terraform.tfvars new file mode 100644 index 0000000..c5e4135 --- /dev/null +++ b/10_migration-backup/site-recovery/terraform.tfvars @@ -0,0 +1,18 @@ +# terraform.tfvars +# This file provides default values for the variables defined in variables.tf. +# These values can be overridden by specifying different values during Terraform execution. + +# Azure Subscription +subscription_id = "" # "your-subscription-id" + +# Resource Group +resource_group_name = "RG-siterecorvery-test" +location = "eastus" + +# Recovery Services Vault Configuration +vault_name = "my-siterecovery-vault" +sku = "Standard" +tags = { + Environment = "SiteRecovery" + Owner = "IT" +} \ No newline at end of file diff --git a/10_migration-backup/site-recovery/variables.tf b/10_migration-backup/site-recovery/variables.tf new file mode 100644 index 0000000..5cd43ec --- /dev/null +++ b/10_migration-backup/site-recovery/variables.tf @@ -0,0 +1,34 @@ +# variables.tf +# This file defines the input variables used in the Terraform configuration. + +variable "subscription_id" { + description = "The Azure subscription ID" + type = string +} + +variable "resource_group_name" { + description = "The name of the resource group" + type = string +} + +variable "location" { + description = "The Azure region to deploy resources" + type = string +} + +variable "vault_name" { + description = "The name of the Recovery Services Vault" + type = string +} + +variable "sku" { + description = "The SKU for the Recovery Services Vault (Standard or RS0)" + type = string + default = "Standard" +} + +variable "tags" { + description = "A map of tags to assign to resources" + type = map(string) + default = {} +} \ No newline at end of file