Skip to content

Commit

Permalink
create full-func vm
Browse files Browse the repository at this point in the history
Signed-off-by: karim mdmirajul <karim.mdmirajul@unikie.com>
  • Loading branch information
karim20230 committed Nov 7, 2023
1 parent 766b4fb commit 460665e
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 26 deletions.
98 changes: 74 additions & 24 deletions terraform/azure-ghaf-infra.tf
Original file line number Diff line number Diff line change
@@ -1,36 +1,57 @@
# SPDX-FileCopyrightText: 2023 Technology Innovation Institute (TII)
#
# SPDX-License-Identifier: Apache-2.0

# Resource group
resource "azurerm_resource_group" "rg" {
name = "ghaf-infra-terraform-dev"
resource "azurerm_resource_group" "ghaf_infra_tf_dev" {
name = "ghaf-infra-tf-dev"
location = var.resource_group_location
}
# Create VN
resource "azurerm_virtual_network" "ghaf-infra-vnet" {
name = "ghaf-infra-terraform-dev-vnet"
address_space = ["10.3.0.0/24"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
# Create VN
resource "azurerm_virtual_network" "ghaf_infra_tf_vnet" {
name = "ghaf-infra-tf-vnet"
address_space = ["10.0.0.0/16"]
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
}


# Create public IPs
resource "azurerm_public_ip" "ghafhydra_terraform_public_ip" {
name = "ghaf-infra-terraform-dev-ip"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
# Create Subnet
resource "azurerm_subnet" "ghaf_infra_tf_subnet" {
name = "ghaf-infra-tf-subnet"
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
virtual_network_name = azurerm_virtual_network.ghaf_infra_tf_vnet.name
address_prefixes = ["10.0.2.0/24"]
}
# Network interface
resource "azurerm_network_interface" "ghaf_infra_tf_network_interface" {
name = "ghaf-infratf286-z1"
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
ip_configuration {
name = "my_nic_configuration"
subnet_id = azurerm_subnet.ghaf_infra_tf_subnet.id
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.ghaf_infra_tf_public_ip.id
}
}
# Create Availability Set
resource "azurerm_availability_set" "ghaf_infra_tf_availability_set" {
name = "ghaf-infra-tf-availability-set"
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
platform_fault_domain_count = 2
platform_update_domain_count = 2
}
# Create Public IPs
resource "azurerm_public_ip" "ghaf_infra_tf_public_ip" {
name = "ghaf-infra-tf-public-ip"
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
allocation_method = "Dynamic"
}


# Create Network SG and rule
resource "azurerm_network_security_group" "ghafhydra_terraform_nsg" {
name = "ghaf-infra-terraform-dev-nsg"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name

# Create Network Security Group and rule
resource "azurerm_network_security_group" "ghaf_infra_tf_nsg" {
name = "ghaf-infra-tf-nsg"
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
security_rule {
name = "SSH"
priority = 300
Expand All @@ -43,4 +64,33 @@ resource "azurerm_network_security_group" "ghafhydra_terraform_nsg" {
destination_address_prefix = "*"
}
}
# Create Linux Virtual Machine
resource "azurerm_linux_virtual_machine" "ghafinfra_tf" {
name = "ghafinfratf"
location = var.resource_group_location
resource_group_name = azurerm_resource_group.ghaf_infra_tf_dev.name
availability_set_id = azurerm_availability_set.ghaf_infra_tf_availability_set.id
network_interface_ids = [
azurerm_network_interface.ghaf_infra_tf_network_interface.id
]
size = "Standard_B8ms"
os_disk {
name = "ghafinfratfdisk1"
caching = "ReadWrite"
storage_account_type = "Premium_LRS"
disk_size_gb = 512
}
source_image_reference {
publisher = "canonical"
offer = "0001-com-ubuntu-server-jammy"
sku = "22_04-lts-gen2"
version = "latest"
}
admin_username = "karim"
disable_password_authentication = true
admin_ssh_key {
username = "karim"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDe5L8iOqhNPsYz5eh9Bz/URYguG60JjMGmKG0wwLIb6Gf2M8Txzk24ESGbMR/F5RYsV1yWYOocL47ngDWQIbO6MGJ7ftUr7slWoUA/FSVwh/jsG681mRqIuJXjKM/YQhBkI9k6+eVxRfLDTs5XZfbwdm7T4aP8ZI2609VY0guXfa/F7DSE1BxN7IJMn0CWLQJanBpoYUxqyQXCUXgljMokdPjTrqAxlBluMsVTP+ZKDnjnpHcVE/hCKk5BxaU6K97OdeIOOEWXAd6uEHssomjtU7+7dhiZzjhzRPKDiSJDF9qtIw50kTHz6ZTdH8SAZmu0hsS6q8OmmDTAnt24dFJV karim@nixos"
}

}
4 changes: 2 additions & 2 deletions terraform/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# SPDX-License-Identifier: Apache-2.0

output "resource_group_name" {
value = azurerm_resource_group.rg.name
value = azurerm_resource_group.ghaf_infra_tf_dev.name
}

output "resource_group_location" {
value = azurerm_resource_group.rg.location
value = var.resource_group_location
}

0 comments on commit 460665e

Please sign in to comment.