2024-12-09 11:45:35 -05:00
|
|
|
# Create Virtual Machine
|
|
|
|
|
resource "azurerm_linux_virtual_machine" "vm" {
|
|
|
|
|
name = var.vm_name
|
2024-11-04 19:54:15 -05:00
|
|
|
resource_group_name = azurerm_resource_group.resource_group.name
|
2024-12-09 11:45:35 -05:00
|
|
|
location = azurerm_resource_group.resource_group.location
|
|
|
|
|
size = var.vm_size
|
|
|
|
|
admin_username = var.vm_user
|
|
|
|
|
admin_password = var.vm_password
|
|
|
|
|
disable_password_authentication = false
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
network_interface_ids = [azurerm_network_interface.nic.id]
|
|
|
|
|
|
|
|
|
|
os_disk {
|
|
|
|
|
name = var.vm_os_disk_name
|
|
|
|
|
caching = "ReadWrite"
|
|
|
|
|
storage_account_type = var.vm_os_disk_type
|
2024-11-04 19:54:15 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
source_image_reference {
|
|
|
|
|
publisher = var.vm_image_publisher
|
|
|
|
|
offer = var.vm_image_offer
|
|
|
|
|
sku = var.vm_image_plan
|
|
|
|
|
version = var.vm_image_version
|
|
|
|
|
}
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
custom_data = base64encode(<<-EOT
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
sudo apt-get update -y
|
|
|
|
|
sudo apt-get install -y docker.io
|
|
|
|
|
sudo apt-get install -y docker-compose
|
|
|
|
|
sudo systemctl start docker
|
|
|
|
|
sudo systemctl enable docker
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
sudo usermod -aG docker ${var.vm_user}
|
|
|
|
|
sudo newgrp docker
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
su - ${var.vm_user} -c '
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
curl -o auth_config.json \
|
|
|
|
|
"https://${azurerm_storage_account.storage_account.name}.file.core.windows.net/${azurerm_storage_share.backend_storage_share.name}/auth_config.json${data.azurerm_storage_account_sas.storage_access.sas}"
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
curl -L -o docker-compose.yaml ${var.docker_compose_url}
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
export VITE_BACKEND_URL=http://${var.dns}.${lower(replace(azurerm_resource_group.resource_group.location, " ", ""))}.cloudapp.azure.com
|
|
|
|
|
export PORT=${var.backend_port}
|
|
|
|
|
export MONGO_URI="${azurerm_cosmosdb_account.cosmosdb_account.primary_mongodb_connection_string}"
|
|
|
|
|
export MONGO_DATABASE=${azurerm_cosmosdb_mongo_collection.cosmosdb_mongo_collection.database_name}
|
|
|
|
|
export EMAIL_SERVICE=${var.backend_email_service}
|
|
|
|
|
export SENDER_EMAIL=${var.backend_email_sender}
|
|
|
|
|
export EMAIL_PSW="${var.backend_email_password}"
|
|
|
|
|
export JWT_SECRET=${var.backend_jwt_secret}
|
|
|
|
|
export SESSION_Secret=${var.backend_session_secret}
|
|
|
|
|
export SITE_URL=http://${var.dns}.${lower(replace(azurerm_resource_group.resource_group.location, " ", ""))}.cloudapp.azure.com
|
|
|
|
|
export FRONTEND_PORT=${var.frontend_port}
|
|
|
|
|
export USE_PORTS=${var.backend_use_port}
|
|
|
|
|
export AUTHENTICATED_ROOMS=${var.backend_use_auth_student}
|
|
|
|
|
export QUIZROOM_IMAGE=${var.quizroom_image}
|
|
|
|
|
|
|
|
|
|
docker-compose up -d
|
|
|
|
|
'
|
|
|
|
|
EOT
|
|
|
|
|
)
|
2024-11-04 19:54:15 -05:00
|
|
|
|
2024-12-09 11:45:35 -05:00
|
|
|
depends_on = [
|
|
|
|
|
azurerm_cosmosdb_mongo_collection.cosmosdb_mongo_collection,
|
|
|
|
|
data.azurerm_storage_account_sas.storage_access]
|
2024-11-04 19:54:15 -05:00
|
|
|
}
|