feat: terraform to azure
This commit is contained in:
43
week-2/opdracht-1/.terraform.lock.hcl
generated
Normal file
43
week-2/opdracht-1/.terraform.lock.hcl
generated
Normal file
@@ -0,0 +1,43 @@
|
||||
# This file is maintained automatically by "terraform init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.terraform.io/hashicorp/azurerm" {
|
||||
version = "4.27.0"
|
||||
constraints = "~> 4.27.0"
|
||||
hashes = [
|
||||
"h1:2fs47aLDaEm93ANXXVRdTjlbUBmFBZRsFjyshKoPE3o=",
|
||||
"zh:0c69edea1995bd3bd9e61980757169c35bf22281b660b5c755b6cb13d08d29d2",
|
||||
"zh:25b86bf7b9678371d8573983954c571696f3e64a3967133be3b835da36307106",
|
||||
"zh:49921cff4f26a49bafada60cd07dabb52c5eb35231059ed928a4f4722e269c82",
|
||||
"zh:4b986166531f9fd1289f01d8220519443e74888a21da512c1b841b006dad6215",
|
||||
"zh:53fb65b2ca4df637f03e4748a100a7d7fc77249e307c03e294d6259cec0310f6",
|
||||
"zh:5c0d021a387ca4e2a5a01da009746a08c45f08e971c10d9bda54539d7264d671",
|
||||
"zh:600043f2b20dc5a45275e43f175c19fe8b6e8e9557a0c884aef018f1f63de90e",
|
||||
"zh:a0284f6f38912f67bb4cb7829fda3fa75be81fea6a9b21119965c2a839430092",
|
||||
"zh:a7ac0576e2069ef77557042c6b5157ded364fbd355b2f9bf7f5441622424086e",
|
||||
"zh:c5db0bcafe986868e28cc6225b68b2d1cf4bf631939d260ca845f17a9aa1677d",
|
||||
"zh:ce620c0eb71b1fdd925828b30cf232a869abccf1c459180f2f991c4166315251",
|
||||
"zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c",
|
||||
]
|
||||
}
|
||||
|
||||
provider "registry.terraform.io/josenk/esxi" {
|
||||
version = "1.10.3"
|
||||
hashes = [
|
||||
"h1:o78ERC8riDT2nHWCbXECt+S/RKwM98/G5ZojJHRm8fA=",
|
||||
"zh:208a6a8092fa50d63fe1780447f2c4c3115b1987902a0c986452172c2c35677e",
|
||||
"zh:3a0755aec960e32dbfbb31be61bba6ee2d11aff0513707e93f4eaebe3d557d93",
|
||||
"zh:3daef19f36c9438771833dc15ae0eddc95faf9df00f9de9ab143bd031314ce50",
|
||||
"zh:4cb4ba24aa3975f3928f5f16bc535ce0b18159ede16abaee39f93b3e13c36334",
|
||||
"zh:56f30098aca0874210c4546530a5bfa5dd49bfad63950f3d9f3623cc6767280b",
|
||||
"zh:716c62ae2d0cb7c64b5b3328792d7e135c4c0905e399e4b7335b7808508a7027",
|
||||
"zh:81b0e8fab21088785e51f2d6af518ac31959b104facb2a25b0481d586a6fc692",
|
||||
"zh:8b415ab7e39ca8e16f923bc73a8af418859faa594d97ed73e3a4aff7a736b08f",
|
||||
"zh:9072bdd960ef85dc735b82423560b027ebb44790af1e84b122f1014f96acfc91",
|
||||
"zh:9e6e1c2a7bf93c4705d280cea5b3d6bfb84c4540b92563e64fbc3a20155ef775",
|
||||
"zh:af14c0e96273470dfb398b1701f575e5ea4963c208a32a4436db5ea0e2f2f385",
|
||||
"zh:c79e772730ab4ac75c58d368f452c7a76abc738bb3666df0cfb567ac01e32c59",
|
||||
"zh:d0068e7ca381d4b18df8b0219540733c996dfc69a89673b6bf52e4d69350c09a",
|
||||
"zh:e188b20664bdcda50c45d071a8d0ba9870368941dac9138cd655f50db4ea15d2",
|
||||
]
|
||||
}
|
71
week-2/opdracht-1/main.tf
Normal file
71
week-2/opdracht-1/main.tf
Normal file
@@ -0,0 +1,71 @@
|
||||
# ESXi
|
||||
|
||||
resource "esxi_guest" "main" {
|
||||
guest_name = "${var.prefix}-vm"
|
||||
disk_store = "datastore1"
|
||||
|
||||
memsize = "1024"
|
||||
numvcpus = "1"
|
||||
power = "on"
|
||||
|
||||
ovf_source = "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.ova"
|
||||
network_interfaces {
|
||||
virtual_network = "VM Network"
|
||||
}
|
||||
}
|
||||
|
||||
# Azure
|
||||
|
||||
resource "azurerm_virtual_network" "main" {
|
||||
name = "${var.prefix}-network"
|
||||
address_space = ["10.0.0.0/16"]
|
||||
location = var.azure_location
|
||||
resource_group_name = var.azure_resourcegroup
|
||||
}
|
||||
|
||||
resource "azurerm_subnet" "main" {
|
||||
name = "internal"
|
||||
resource_group_name = var.azure_resourcegroup
|
||||
virtual_network_name = azurerm_virtual_network.main.name
|
||||
address_prefixes = ["10.0.2.0/24"]
|
||||
}
|
||||
|
||||
resource "azurerm_network_interface" "main" {
|
||||
name = "${var.prefix}-nic"
|
||||
location = var.azure_location
|
||||
resource_group_name = var.azure_resourcegroup
|
||||
|
||||
ip_configuration {
|
||||
name = "internal"
|
||||
subnet_id = azurerm_subnet.main.id
|
||||
private_ip_address_allocation = "Dynamic"
|
||||
}
|
||||
}
|
||||
|
||||
resource "azurerm_linux_virtual_machine" "main" {
|
||||
name = "${var.prefix}-vm"
|
||||
location = var.azure_location
|
||||
resource_group_name = var.azure_resourcegroup
|
||||
network_interface_ids = [
|
||||
azurerm_network_interface.main.id,
|
||||
]
|
||||
size = "Standard_B2ats_v2"
|
||||
|
||||
admin_username = "adminuser"
|
||||
admin_ssh_key {
|
||||
username = "adminuser"
|
||||
public_key = data.azurerm_ssh_public_key.azure.public_key
|
||||
}
|
||||
|
||||
os_disk {
|
||||
caching = "ReadWrite"
|
||||
storage_account_type = "Standard_LRS"
|
||||
}
|
||||
|
||||
source_image_reference {
|
||||
publisher = "Canonical"
|
||||
offer = "ubuntu-24_04-lts"
|
||||
sku = "server"
|
||||
version = "latest"
|
||||
}
|
||||
}
|
26
week-2/opdracht-1/providers.tf
Normal file
26
week-2/opdracht-1/providers.tf
Normal file
@@ -0,0 +1,26 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
esxi = {
|
||||
source = "registry.terraform.io/josenk/esxi"
|
||||
}
|
||||
azurerm = {
|
||||
source = "hashicorp/azurerm"
|
||||
version = "~> 4.27.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "esxi" {
|
||||
esxi_hostname = var.esxi_hostname
|
||||
esxi_hostport = var.esxi_hostport
|
||||
esxi_hostssl = var.esxi_hostssl
|
||||
esxi_username = var.esxi_username
|
||||
esxi_password = var.esxi_password
|
||||
}
|
||||
|
||||
|
||||
provider "azurerm" {
|
||||
resource_provider_registrations = "none"
|
||||
subscription_id = var.azure_subscriptionid
|
||||
features{}
|
||||
}
|
5
week-2/opdracht-1/secrets.auto.tfvars.example
Normal file
5
week-2/opdracht-1/secrets.auto.tfvars.example
Normal file
@@ -0,0 +1,5 @@
|
||||
esxi_hostname = ""
|
||||
esxi_username = ""
|
||||
esxi_password = ""
|
||||
azure_subscriptionid = ""
|
||||
azure_resourcegroup = ""
|
47
week-2/opdracht-1/variables.tf
Normal file
47
week-2/opdracht-1/variables.tf
Normal file
@@ -0,0 +1,47 @@
|
||||
variable "esxi_hostname" {
|
||||
description = "IP address of the ESXi host"
|
||||
}
|
||||
|
||||
variable "esxi_hostport" {
|
||||
description = "SSH port of the ESXi host"
|
||||
default = "22"
|
||||
}
|
||||
|
||||
variable "esxi_hostssl" {
|
||||
description = "SSL port of the ESXi host"
|
||||
default = "443"
|
||||
}
|
||||
|
||||
variable "esxi_username" {
|
||||
description = "Username to connect to the ESXi host"
|
||||
}
|
||||
|
||||
variable "esxi_password" {
|
||||
description = "Password to connect to the ESXi host"
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "azure_subscriptionid" {
|
||||
description = "ID of the Azure Subscription."
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "azure_resourcegroup" {
|
||||
description = "Name of the Azure Resource Group."
|
||||
}
|
||||
|
||||
variable "azure_location" {
|
||||
description = "Location of the Azure resources"
|
||||
default = "westeurope"
|
||||
}
|
||||
|
||||
variable "prefix" {
|
||||
description = "The Prefix used for all resources"
|
||||
default = "week-2-opdracht-1"
|
||||
}
|
||||
|
||||
# Pull the SSH public key from Azure Key Vault
|
||||
data "azurerm_ssh_public_key" "azure" {
|
||||
name = "azure"
|
||||
resource_group_name = var.azure_resourcegroup
|
||||
}
|
Reference in New Issue
Block a user