使用 terraform 安装 ebs_block_device
Mount a ebs_block_device using terraform
任何人都可以建议我如何自动挂载使用 terraform 创建的 EBS 卷并使其在 /custom 上可用
resource "aws_instance" "ec201" {
...
ebs_block_device {
device_name = "/dev/sdd"
volume_type = "gp2"
volume_size = 10
delete_on_termination = true
encrypted = true
}
...
可以自动挂载吗?
我读过这个页面:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html
和这个;
Automatically mount an EBS volume upon starting an Amazon EC2 Linux instance
当我做一个 :
> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
nvme1n1 259:0 0 10G 0 disk
nvme0n1 259:1 0 250G 0 disk
└─nvme0n1p1 259:2 0 250G 0 part /
我有一个未挂载的 10GB 分区。是否可以使用 terraform 自动安装它?
此致
如您所见,您的 SO 将“nvme1n1”读作设备名称(而不是“/dev/sdd”)。
因此,您可以为您的 EC2 实例应用 user_data 和 cloud-init 指令:
resource "aws_instance" "your-instance" {
..
user_data = file("user_data/ebs-mount.sh")
..
}
其中user_data/ebs-mount.sh有下一个内容(考虑到ebs盘有xfs格式):
#cloud-config
hostname: your-instance
runcmd:
- sudo mkdir /custom -p
- sudo echo '/dev/nvme1n1 /custom xfs defaults 0 0' >> /etc/fstab
- sudo mount -a
output : { all : '| tee -a /var/log/cloud-init-output.log' }
任何人都可以建议我如何自动挂载使用 terraform 创建的 EBS 卷并使其在 /custom 上可用
resource "aws_instance" "ec201" {
...
ebs_block_device {
device_name = "/dev/sdd"
volume_type = "gp2"
volume_size = 10
delete_on_termination = true
encrypted = true
}
...
可以自动挂载吗? 我读过这个页面: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html 和这个; Automatically mount an EBS volume upon starting an Amazon EC2 Linux instance
当我做一个 :
> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
nvme1n1 259:0 0 10G 0 disk
nvme0n1 259:1 0 250G 0 disk
└─nvme0n1p1 259:2 0 250G 0 part /
我有一个未挂载的 10GB 分区。是否可以使用 terraform 自动安装它?
此致
如您所见,您的 SO 将“nvme1n1”读作设备名称(而不是“/dev/sdd”)。
因此,您可以为您的 EC2 实例应用 user_data 和 cloud-init 指令:
resource "aws_instance" "your-instance" {
..
user_data = file("user_data/ebs-mount.sh")
..
}
其中user_data/ebs-mount.sh有下一个内容(考虑到ebs盘有xfs格式):
#cloud-config
hostname: your-instance
runcmd:
- sudo mkdir /custom -p
- sudo echo '/dev/nvme1n1 /custom xfs defaults 0 0' >> /etc/fstab
- sudo mount -a
output : { all : '| tee -a /var/log/cloud-init-output.log' }