From 115eb6d1519cb3fdcb80832d408ce84cb6bac642 Mon Sep 17 00:00:00 2001 From: mikaelkrief Date: Tue, 30 May 2023 20:51:07 +0000 Subject: [PATCH] add --- CHAP08/cost/.terraform.lock.hcl | 22 +++++++++ CHAP08/cost/main.tf | 86 +++++++++++++++++++++++++++++++++ CHAP08/terraformer/install.sh | 3 -- CHAP08/vm/.terraform.lock.hcl | 19 ++++++++ CHAP08/vm/main.tf | 19 +++----- 5 files changed, 135 insertions(+), 14 deletions(-) create mode 100644 CHAP08/cost/.terraform.lock.hcl create mode 100644 CHAP08/cost/main.tf delete mode 100644 CHAP08/terraformer/install.sh diff --git a/CHAP08/cost/.terraform.lock.hcl b/CHAP08/cost/.terraform.lock.hcl new file mode 100644 index 0000000..fd5fbcf --- /dev/null +++ b/CHAP08/cost/.terraform.lock.hcl @@ -0,0 +1,22 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.58.0" + constraints = "~> 3.35" + hashes = [ + "h1:Hvlt3hgTiip6xMeq8/EDGqF8NoVuZjYdTZdO79YNXsw=", + "zh:22b19802605ca3e2b811e33650438be3647748cf8f75474c78448c30ac1cad0b", + "zh:402ce010f4b68337abaccf8059c37294cabcbdbc3cefd9491dcd312e36ceea3c", + "zh:53d2cd15f1631c7ffb47918064d644899cc671d47c72f4dafee4e2a5e69afd14", + "zh:5a6b1c55629cff555472d1d43ad6e802693f7fd046c7d37718d4de6f52dbf66b", + "zh:6181dccb7bca7cd84b0295a0332f19a7347a9586101f0a5e51b53bda1ec74651", + "zh:854181d6a8821b3707775c913e91dd7944fcb55098953ef030168fa3cd0224aa", + "zh:b44c758424d1a037fd833e0c69b29e3ac4047ab95653bb3e080835e55bd9badb", + "zh:b6ee916a1579bba29b1aacce8897c6733fa97ba0dba2808f1ffa9ab492743fab", + "zh:b7ab57044649578410dadfdf4412fc5f8aa085a25ea0b061393e843b49b43b63", + "zh:cb68ddb922eb4be74dedf58c953d7f778b4e5f3cdcbe2ea83e02b12296ce4969", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "zh:fe9e86173134cd9dc8ed65eae8634abc6d6f6806b5b412f54fccf4047052daa0", + ] +} diff --git a/CHAP08/cost/main.tf b/CHAP08/cost/main.tf new file mode 100644 index 0000000..99fcabd --- /dev/null +++ b/CHAP08/cost/main.tf @@ -0,0 +1,86 @@ +terraform { + required_version = "~> 1.0" + required_providers { + azurerm = { + version = "~> 3.35" + } + } +} + +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "rg" { + name = "rg-demo" + location = "West Europe" +} + +resource "azurerm_virtual_network" "vnet" { + name = "vnet-demo" + address_space = ["10.0.0.0/16"] + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name +} + +resource "azurerm_subnet" "subnet" { + name = "subnet-demo" + resource_group_name = azurerm_resource_group.rg.name + virtual_network_name = azurerm_virtual_network.vnet.name + address_prefixes = ["10.0.2.0/24"] +} + +resource "azurerm_network_interface" "nic" { + name = "nic-demo" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + + ip_configuration { + name = "internal" + subnet_id = azurerm_subnet.subnet.id + private_ip_address_allocation = "Dynamic" + } +} + +resource "azurerm_linux_virtual_machine" "vm" { + name = "vm-demo" + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + size = "Standard_DS2_V2" + disable_password_authentication = false + admin_username = "adminuser" + admin_password = "P@ssw0rd123*" + network_interface_ids = [ + azurerm_network_interface.nic.id, + ] + + os_disk { + caching = "ReadWrite" + storage_account_type = "Standard_LRS" + } + + source_image_reference { + publisher = "Canonical" + offer = "UbuntuServer" + sku = "18.04-LTS" + version = "latest" + } +} + +resource "azurerm_service_plan" "plan-app" { + name = "splan" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + + os_type = "Linux" + sku_name = "B1" +} + +resource "azurerm_linux_web_app" "app" { + name = "webappdemobook1001" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + service_plan_id = azurerm_service_plan.plan-app.id + + site_config {} +} \ No newline at end of file diff --git a/CHAP08/terraformer/install.sh b/CHAP08/terraformer/install.sh deleted file mode 100644 index b990b92..0000000 --- a/CHAP08/terraformer/install.sh +++ /dev/null @@ -1,3 +0,0 @@ -curl -LO https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-azure-linux-amd64 -chmod +x terraformer-azure-linux-amd64 -sudo mv terraformer-azure-linux-amd64 /usr/local/bin/terraformer \ No newline at end of file diff --git a/CHAP08/vm/.terraform.lock.hcl b/CHAP08/vm/.terraform.lock.hcl index a30b75f..7861fbd 100644 --- a/CHAP08/vm/.terraform.lock.hcl +++ b/CHAP08/vm/.terraform.lock.hcl @@ -19,3 +19,22 @@ provider "registry.terraform.io/hashicorp/azurerm" { "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", ] } + +provider "registry.terraform.io/hashicorp/random" { + version = "3.5.1" + hashes = [ + "h1:VSnd9ZIPyfKHOObuQCaKfnjIHRtR7qTw19Rz8tJxm+k=", + "zh:04e3fbd610cb52c1017d282531364b9c53ef72b6bc533acb2a90671957324a64", + "zh:119197103301ebaf7efb91df8f0b6e0dd31e6ff943d231af35ee1831c599188d", + "zh:4d2b219d09abf3b1bb4df93d399ed156cadd61f44ad3baf5cf2954df2fba0831", + "zh:6130bdde527587bbe2dcaa7150363e96dbc5250ea20154176d82bc69df5d4ce3", + "zh:6cc326cd4000f724d3086ee05587e7710f032f94fc9af35e96a386a1c6f2214f", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:b6d88e1d28cf2dfa24e9fdcc3efc77adcdc1c3c3b5c7ce503a423efbdd6de57b", + "zh:ba74c592622ecbcef9dc2a4d81ed321c4e44cddf7da799faa324da9bf52a22b2", + "zh:c7c5cde98fe4ef1143bd1b3ec5dc04baf0d4cc3ca2c5c7d40d17c0e9b2076865", + "zh:dac4bad52c940cd0dfc27893507c1e92393846b024c5a9db159a93c534a3da03", + "zh:de8febe2a2acd9ac454b844a4106ed295ae9520ef54dc8ed2faf29f12716b602", + "zh:eab0d0495e7e711cca367f7d4df6e322e6c562fc52151ec931176115b83ed014", + ] +} diff --git a/CHAP08/vm/main.tf b/CHAP08/vm/main.tf index 02dc92b..6a94847 100644 --- a/CHAP08/vm/main.tf +++ b/CHAP08/vm/main.tf @@ -13,7 +13,7 @@ provider "azurerm" { resource "azurerm_resource_group" "rg" { name = "RG-VM" - location = "West Europe" + location = "East US" } resource "azurerm_public_ip" "ip" { @@ -43,14 +43,10 @@ resource "azurerm_network_interface" "nic" { } -data "azurerm_key_vault" "keyvault" { - name = "keyvdemobook" - resource_group_name = "rg_keyvault" -} - -data "azurerm_key_vault_secret" "vm-password" { - name = "vmdemoaccess" - key_vault_id = data.azurerm_key_vault.keyvault.id +resource "random_password" "password" { + length = 16 + special = true + override_special = "_%@" } resource "azurerm_linux_virtual_machine" "vm" { @@ -59,7 +55,7 @@ resource "azurerm_linux_virtual_machine" "vm" { location = azurerm_resource_group.rg.location size = "Standard_F2" admin_username = "adminuser" - admin_password = data.azurerm_key_vault_secret.vm-password.value + admin_password = random_password.password.result disable_password_authentication = false network_interface_ids = [azurerm_network_interface.nic.id] @@ -77,7 +73,8 @@ resource "azurerm_linux_virtual_machine" "vm" { provisioner "remote-exec" { inline = [ - "apt update", + "sudo apt update", + "sudo apt install nginx -y" ] connection {