Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM rockylinux:9-minimal

# Install minimal required packages
RUN microdnf install -y \
unzip \
git \
curl \
jq \
&& microdnf clean all

# Install Azure CLI (RPM direct installation)
RUN microdnf install -y dnf && \
rpm --import https://packages.microsoft.com/keys/microsoft.asc && \
dnf install -y https://packages.microsoft.com/config/rhel/9.0/packages-microsoft-prod.rpm && \
dnf install -y azure-cli

# Install latest version of Terraform
RUN LATEST_VERSION=$(curl -s https://api.github.com/repos/hashicorp/terraform/releases/latest | jq -r '.tag_name' | sed 's/v//') && \
curl -O "https://releases.hashicorp.com/terraform/${LATEST_VERSION}/terraform_${LATEST_VERSION}_linux_amd64.zip" && \
unzip terraform_${LATEST_VERSION}_linux_amd64.zip -d /usr/local/bin && \
rm terraform_${LATEST_VERSION}_linux_amd64.zip

WORKDIR /workspace
22 changes: 22 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "Terraform Environment",
"build": {
"dockerfile": "Dockerfile",
},
"customizations": {
"vscode": {
"extensions": [
"hashicorp.terraform",
"github.vscode-pull-request-github"
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"workbench.editorAssociations": {
"*.md": "vscode.markdown.preview"
}
}
}
},
"remoteUser": "root",
"postCreateCommand": "terraform --version && git --version"
}
File renamed without changes.
49 changes: 49 additions & 0 deletions lessons/day14/mykey
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
1 change: 1 addition & 0 deletions lessons/day14/mykey.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7Ok2+nRXVTF0YhwJgZyivFFX3YTWtoqOXyo2hQDdPtUsruCnHUS/faT7v1KfmPdy7mKIL1fiQVZO3SFAZo+8jKhxsZbvJmJz6Vx4Jt8F4MQG7L+9Jpu6VvNxPxXXO+mTyyQ/mx64hZkjSu1fDdNg6GFMbvgOoZOrrj0O4s6tF/j1dlx8Dm1p+ClYaWv0g8PRjdVnu1DLvBVklRPBrXIuKHC1i58GSTbydfco4VOXG3KEAPNM4zRqgpJp5UQWHp0qSRk8eA1cxjnxkIFqv5H6gnkx3ZWXwkDpXWjNAU8n4tlqIVWNiqLmVVn2H+tpWA1LJBfOubzAy2XGZfIIwwwa7P9g1DGyYowwE7CpU3nXR687MZKOK9G2pdU/vFvMYFIEoazVwimF3lpmYn0PuTS4rQgrbr5lOYq+p0WJyMdMxA4v218ci1xH+ULTDCmmqUKSX8UqFDGX1c8CNX9HoBu2R0HiDGJs1OzGjX3ZO8FwLQvrWcGlnD5tnzaGEYg0pWWMioMAlMvDumRZXoswMcr5ehyEuFfWtODXVAvqalk1pn8hUzf1IghrmV9DfoGteAAdZ0uly3E1ynaTKzVvzLt2Lc4aAmyAl+ASdIi0ESRkFaL5yCnL8up9I9i/v5rDWOxm79jR3ChNGgRRbBcW8Y5naY01NuPzqzTn8v5y1ARRJzw== root@codespaces-065fcd
1 change: 1 addition & 0 deletions lessons/day14/provider.tf
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ terraform {

provider "azurerm" {
features {}
subscription_id = "62bc78e2-15be-4aaa-9bdc-b075b682ae5b"
}
4 changes: 2 additions & 2 deletions lessons/day14/vmss.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ resource "azurerm_orchestrated_virtual_machine_scale_set" "vmss_terraform_tutori
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
sku_name = "Standard_D2s_v4"
instances = 3
instances = 2
platform_fault_domain_count = 1 # For zonal deployments, this must be set to 1
zones = ["1"] # Zones required to lookup zone in the startup script

Expand All @@ -16,7 +16,7 @@ resource "azurerm_orchestrated_virtual_machine_scale_set" "vmss_terraform_tutori
admin_username = "azureuser"
admin_ssh_key {
username = "azureuser"
public_key = file(".ssh/key.pub")
public_key = file("mykey.pub")
}
}
}
Expand Down
File renamed without changes.
46 changes: 23 additions & 23 deletions lessons/day15/network.tf
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
resource azurerm_resource_group "rg" {
name = "day15-rg"
location = "canadacentral"
resource "azurerm_resource_group" "rg" {
name = "day15-rg"
location = "centralindia"
}


resource azurerm_virtual_network "vnet1" {
name = "peer1-vnet"
location = azurerm_resource_group.rg.location
address_space = ["10.0.0.0/16"]
resource_group_name = azurerm_resource_group.rg.name
resource "azurerm_virtual_network" "vnet1" {
name = "peer1-vnet"
location = azurerm_resource_group.rg.location
address_space = ["10.0.0.0/16"]
resource_group_name = azurerm_resource_group.rg.name

}

resource "azurerm_subnet" "sn1" {
name = "peer1-sn"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet1.name
address_prefixes = ["10.0.0.0/24"]
name = "peer1-sn"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet1.name
address_prefixes = ["10.0.0.0/24"]

}

resource azurerm_virtual_network "vnet2" {
name = "peer2-vnet"
location = azurerm_resource_group.rg.location
address_space = ["10.1.0.0/16"]
resource_group_name = azurerm_resource_group.rg.name
resource "azurerm_virtual_network" "vnet2" {
name = "peer2-vnet"
location = azurerm_resource_group.rg.location
address_space = ["10.1.0.0/16"]
resource_group_name = azurerm_resource_group.rg.name

}

resource "azurerm_subnet" "sn2" {
name = "peer2-sn"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet2.name
address_prefixes = ["10.1.0.0/24"]
name = "peer2-sn"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet2.name
address_prefixes = ["10.1.0.0/24"]

}

# resource "azurerm_virtual_network_peering" "example-1" {
Expand Down
9 changes: 7 additions & 2 deletions lessons/day15/provider.tf
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,10 @@ terraform {
# configures the provider

provider "azurerm" {
features {}
}
subscription_id = "c12c9f13-38c0-45db-9408-98f2982a27d0"
features {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
4 changes: 2 additions & 2 deletions lessons/day15/vm.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ resource "azurerm_virtual_machine" "main1" {
vm_size = "Standard_DS1_v2"

# Uncomment this line to delete the OS disk automatically when deleting the VM
delete_os_disk_on_termination = true
delete_os_disk_on_termination = true

# Uncomment this line to delete the data disks automatically when deleting the VM
# delete_data_disks_on_termination = true
Expand Down Expand Up @@ -69,7 +69,7 @@ resource "azurerm_virtual_machine" "main2" {
vm_size = "Standard_DS1_v2"

# Uncomment this line to delete the OS disk automatically when deleting the VM
delete_os_disk_on_termination = true
delete_os_disk_on_termination = true

# Uncomment this line to delete the data disks automatically when deleting the VM
# delete_data_disks_on_termination = true
Expand Down
9 changes: 9 additions & 0 deletions terraform.tfstate
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"version": 4,
"terraform_version": "1.13.1",
"serial": 1,
"lineage": "827e4773-85f2-a5ad-3cc0-15f2172236b3",
"outputs": {},
"resources": [],
"check_results": null
}