我正在利用Terraform的vsphere_virtual_machine资源从模板克隆虚拟机。磁盘子资源(模板中的每个磁盘都需要)允许您在置备期间增加磁盘的大小。我正在从操作系统的角度(分区,逻辑卷,文件系统)寻找有关如何自动扩展空间的建议。我目前使用fdisk,lvextend等工具手动执行此操作,但希望在代码中使其自动化。如果这不在Terraform的范围内,是否还有其他策略或自动化工具可以更好地完成此任务(例如Chef之类的配置管理工具)?
答案 0 :(得分:0)
您可以使用remote_exec
预配器来完成此操作:
provisioner "remote-exec" {
connection {
host = "${var.ip}"
user = "ubuntu"
password = "${var.VP}"
}
inline = [
"echo ${var.VP} | sudo -S growpart /dev/sda 2",
"sudo growpart /dev/sda 5",
"sudo pvresize /dev/sda5",
"sudo lvextend -l +100%FREE /dev/mapper/ubuntu--base--vg-root",
"sudo resize2fs /dev/mapper/ubuntu--base--vg-root"
]
}
您的命令将根据操作系统和分区标签而略有不同,但是要旨是相同的。
我不知道为什么我必须在growpart /dev/sda 2
之前growpart /dev/sda 5
,但是我知道。这适用于VMWare ESXI上的Ubuntu 16.04模板。
答案 1 :(得分:0)
我不知道为什么我必须在
growpart /dev/sda 2
之前growpart /dev/sda 5
,但是我知道。
如果运行fdisk -l
,则会看到分区5是一个LVM,它在扩展2的分区2中开始和结束。因此必须先增长分区2,然后才能增长分区5。