* Add datastorage disk
* Add datadisk true/false for optional disk
* Add ide config directory to gitignore
This commit is contained in:
Jérémy Marmol 2017-10-13 21:42:11 +02:00 коммит произвёл David Tesar
Родитель eb37f5aa23
Коммит c9690a97f7
3 изменённых файлов: 134 добавлений и 25 удалений

5
.gitignore поставляемый
Просмотреть файл

@ -22,4 +22,7 @@ Session.vim
.netrwhist
*~
# auto-generated tag files
tags
tags
# IDE configs
.idea

136
main.tf
Просмотреть файл

@ -30,13 +30,13 @@ resource "azurerm_storage_account" "vm-sa" {
}
resource "azurerm_virtual_machine" "vm-linux" {
count = "${contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") ? 0 : var.nb_instances}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
count = "${!contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") && var.data_disk == "false" ? var.nb_instances : 0}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
delete_os_disk_on_termination = "${var.delete_os_disk_on_termination}"
storage_image_reference {
@ -48,12 +48,12 @@ resource "azurerm_virtual_machine" "vm-linux" {
}
storage_os_disk {
name = "osdisk-${var.vm_hostname}-${count.index}"
create_option = "FromImage"
name = "osdisk-${var.vm_hostname}-${count.index}"
create_option = "FromImage"
caching = "ReadWrite"
managed_disk_type = "${var.storage_account_type}"
}
os_profile {
computer_name = "${var.vm_hostname}"
admin_username = "${var.admin_username}"
@ -75,14 +75,14 @@ resource "azurerm_virtual_machine" "vm-linux" {
}
}
resource "azurerm_virtual_machine" "vm-windows" {
count = "${contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") ? var.nb_instances : 0}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
resource "azurerm_virtual_machine" "vm-linux-with-datadisk" {
count = "${!contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") && var.data_disk == "true" ? var.nb_instances : 0}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
delete_os_disk_on_termination = "${var.delete_os_disk_on_termination}"
storage_image_reference {
@ -94,12 +94,102 @@ resource "azurerm_virtual_machine" "vm-windows" {
}
storage_os_disk {
name = "osdisk${count.index}"
name = "osdisk-${var.vm_hostname}-${count.index}"
create_option = "FromImage"
caching = "ReadWrite"
managed_disk_type = "${var.storage_account_type}"
}
storage_data_disk {
name = "${format("datadisk-%s-%d", var.vm_hostname, count.index)}"
create_option = "Empty"
lun = 0
disk_size_gb = "${var.data_disk_size_gb}"
managed_disk_type = "${var.data_sa_type}"
}
os_profile {
computer_name = "${var.vm_hostname}"
admin_username = "${var.admin_username}"
admin_password = "${var.admin_password}"
}
os_profile_linux_config {
disable_password_authentication = true
ssh_keys {
path = "/home/${var.admin_username}/.ssh/authorized_keys"
key_data = "${file("${var.ssh_key}")}"
}
}
}
resource "azurerm_virtual_machine" "vm-windows" {
count = "${contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") && var.data_disk == "false" ? var.nb_instances : 0}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
delete_os_disk_on_termination = "${var.delete_os_disk_on_termination}"
storage_image_reference {
id = "${var.vm_os_id}"
publisher = "${coalesce(var.vm_os_publisher, module.os.calculated_value_os_publisher)}"
offer = "${coalesce(var.vm_os_offer, module.os.calculated_value_os_offer)}"
sku = "${coalesce(var.vm_os_sku, module.os.calculated_value_os_sku)}"
version = "${var.vm_os_version}"
}
storage_os_disk {
name = "osdisk-${var.vm_hostname}-${count.index}"
create_option = "FromImage"
caching = "ReadWrite"
managed_disk_type = "${var.storage_account_type}"
}
os_profile {
computer_name = "${var.vm_hostname}"
admin_username = "${var.admin_username}"
admin_password = "${var.admin_password}"
}
}
resource "azurerm_virtual_machine" "vm-windows-with-datadisk" {
count = "${contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer") && var.data_disk == "true" ? var.nb_instances : 0}"
name = "${var.vm_hostname}${count.index}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
availability_set_id = "${azurerm_availability_set.vm.id}"
vm_size = "${var.vm_size}"
network_interface_ids = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
delete_os_disk_on_termination = "${var.delete_os_disk_on_termination}"
storage_image_reference {
id = "${var.vm_os_id}"
publisher = "${coalesce(var.vm_os_publisher, module.os.calculated_value_os_publisher)}"
offer = "${coalesce(var.vm_os_offer, module.os.calculated_value_os_offer)}"
sku = "${coalesce(var.vm_os_sku, module.os.calculated_value_os_sku)}"
version = "${var.vm_os_version}"
}
storage_os_disk {
name = "osdisk-${var.vm_hostname}-${count.index}"
create_option = "FromImage"
caching = "ReadWrite"
managed_disk_type = "${var.storage_account_type}"
}
storage_data_disk {
name = "${format("datadisk-%s-%d", var.vm_hostname, count.index)}"
create_option = "Empty"
lun = 0
disk_size_gb = "${var.data_disk_size_gb}"
managed_disk_type = "${var.data_sa_type}"
}
os_profile {
computer_name = "${var.vm_hostname}"
admin_username = "${var.admin_username}"
@ -149,10 +239,10 @@ resource "azurerm_network_security_group" "vm" {
}
resource "azurerm_network_interface" "vm" {
count = "${var.nb_instances}"
name = "nic-${var.vm_hostname}-${count.index}"
location = "${azurerm_resource_group.vm.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
count = "${var.nb_instances}"
name = "nic-${var.vm_hostname}-${count.index}"
location = "${azurerm_resource_group.vm.location}"
resource_group_name = "${azurerm_resource_group.vm.name}"
network_security_group_id = "${azurerm_network_security_group.vm.id}"
ip_configuration {

Просмотреть файл

@ -108,6 +108,22 @@ variable "delete_os_disk_on_termination" {
default = "false"
}
variable "data_sa_type" {
description = "Data Disk Storage Account type"
default = "Standard_LRS"
}
variable "data_disk_size_gb" {
description = "Storage data disk size size"
default = ""
}
variable "data_disk" {
type = "string"
description = "Set to true to add a datadisk."
default = "false"
}
variable "boot_diagnostics" {
description = "(Optional) Enable or Disable boot diagnostics"
default = "false"
@ -116,4 +132,4 @@ variable "boot_diagnostics" {
variable "boot_diagnostics_sa_type" {
description = "(Optional) Storage account type for boot diagnostics"
default = "Standard_LRS"
}
}