# declare azurerm provider # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs provider "azurerm" { features {} } # create a resource group #cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group resource "azurerm_resource_group" "rg" { name = "myResourceGroup" location = "westeurope" } # create a storage account # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/storage_account resource "azurerm_storage_account" "sa" { name = "mystorageaccount" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location account_tier = "Standard" account_replication_type = "LRS" } # create a container in the storage account # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/storage_container resource "azurerm_storage_container" "sc" { name = "mycontainer" storage_account_name = azurerm_storage_account.sa.name container_access_type = "private" } # create a managed disk # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/managed_disk resource "azurerm_managed_disk" "md" { name = "myManagedDisk" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name storage_account_type = "Standard_LRS" create_option = "Empty" disk_size_gb = 1 } # create a public IP address # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/public_ip resource "azurerm_public_ip" "pip" { name = "myPublicIP" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name allocation_method = "Dynamic" } # create a network interface # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/network_interface resource "azurerm_network_interface" "nic" { name = "myNIC" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name ip_configuration { name = "myNICConfg" subnet_id = azurerm_subnet.subnet.id private_ip_address_allocation = "Dynamic" public_ip_address_id = azurerm_public_ip.pip.id } } # create a S1 service plan # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/app_service_plan resource "azurerm_app_service_plan" "asp" { name = "myAppServicePlan" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name kind = "Linux" reserved = true sku { tier = "Standard" size = "S1" } } # create a app service # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/app_service resource "azurerm_app_service" "as" { name = "myAppService" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name app_service_plan_id = azurerm_app_service_plan.asp.id site_config { linux_fx_version = "DOCKER|nginx" } } # create storage account # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/storage_account resource "azurerm_storage_account" "sa" { name = "mystorageaccount" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location account_tier = "Standard" account_replication_type = "LRS" } # create a virtual network # cf. https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network resource "azurerm_virtual_network" "vnet" { name = "myVnet" address_space = ["10.12.1.0/24"] # CIDR block location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name }