terraform: azure storage_data_disk потерян после перезагрузки - PullRequest
0 голосов
/ 07 мая 2020

Я использовал шаблон ниже, чтобы создать виртуальную машину в Azure с terraform. Диск с данными был создан и использовался на этапе подготовки:

/dev/sdb1       6.9G   32M  6.5G   1% /mnt
/dev/sdc1        25G  3.7G   20G  16% /datadrive
tmpfs           341M     0  341M   0% /run/user/1000

После перезагрузки моей виртуальной машины data_disk исчез, что я делаю неправильно при создании виртуальной машины, мне нужно сохранить data_disk.

/dev/sdb1       6.9G   32M  6.5G   1% /mnt
tmpfs           341M     0  341M   0% /run/user/1000

шаблон terraform

resource "azurerm_managed_disk" "data-disk" {
  name                 = "datadisk-${random_string.resource-id.result}"
  location             = data.azurerm_resource_group.azure-resource-rg.location
  resource_group_name  = data.azurerm_resource_group.azure-resource-rg.name
  storage_account_type = "Standard_LRS"
  create_option        = "Empty"
  disk_size_gb         = "128"
}


# Create virtual machine
resource "azurerm_virtual_machine" "azure-vm" {
    name                  = "${var.prefix}-${random_string.resource-id.result}"
    location              = (var.location)

    (...)

    storage_os_disk {
        name              = "${var.prefix}-${random_string.resource-id.result}-disk"
        caching           = "ReadWrite"
        create_option     = "FromImage"
        managed_disk_type = "Premium_LRS"
    }

    storage_data_disk {
        name            = azurerm_managed_disk.data-disk.name
        managed_disk_id = azurerm_managed_disk.data-disk.id
        create_option   = "Attach"
        lun             = 0
        disk_size_gb    = azurerm_managed_disk.data-disk.disk_size_gb
    }

    storage_image_reference {
        publisher = (var.os-publisher)
        offer     = (var.os-offer)
        sku       = (var.os-sku)
        version   = (var.os-version)
    }

    (...)

}

EDIT

скрипт, выполняемый для монтирования диска с данными:

mountpoint /datadrive || echo -e "o\nn\np\n\n\n\n\nt\nfd\nw\n" | sudo fdisk "/dev/sdc"
sudo mkdir /datadrive
sudo mkfs -t ext4 /dev/sdc1
sudo mount /dev/sdc1 /datadrive
sudo -i blkid

1 Ответ

0 голосов
/ 08 мая 2020

Чтобы обеспечить автоматическое повторное подключение диска после перезагрузки, его необходимо добавить в файл /etc/fstab. Также настоятельно рекомендуется использовать UUID (универсальный уникальный идентификатор) в /etc/fstab для ссылки на диск, а не только на имя устройства (например, / dev / sdc1).

Чтобы найти новый UUID диска через sudo -i blkid, добавьте следующую строку в конец файла /etc/fstab:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   ext4   defaults,nofail   1   2

Примечание

Неправильное редактирование файла /etc/fstab может привести к невозможности загрузки системы. Если вы не уверены, обратитесь к документации дистрибутива для получения информации о том, как правильно отредактировать этот файл. Также рекомендуется перед редактированием создать резервную копию файла /etc/fstab.

Читать https://docs.microsoft.com/en-us/azure/virtual-machines/linux/attach-disk-portal#mount -the-disk

...