使用Cloud-Init格式化和挂载AWS实例存储

时间:2018-02-06 00:15:51

标签: amazon-ec2 terraform cloud-init

我正在尝试使用terraform在AWS中创建一个r3.large实例。

以下是我在地形中的AMI定义片段。

resource "aws_instance" "centos-server" {

   ephemeral_block_device {
     device_name  = "/dev/xvdf"
     virtual_name = "ephemeral0"
   }

   user_data = "${file("./user-data.yml")}"
}

和我的user-data.yml文件

#cloud-config
device_aliases:
  'ephemeral0': '/dev/xvdf'
disk_setup:
  ephmeral0:
   table_type: 'mbr'
   layout: true
   overwrite: true
fs_setup:
 - label: ephemeral0
   filesystem: ext4
   device: ephemeral0
   partition: auto
mounts:
 - [ ephemeral0, "/media/ephemeral0", "ext4", "noatime", "0", "2" ]

当我进入正在运行的实例时,我可以看到带有“fdisk -l”的实例存储,但它没有格式化或分区。

编辑:添加了一个cloud-init日志片段

Cloud-init v. 0.7.5 running 'modules:config' at Wed, 07 Feb 2018 19:09:33 +0000. Up 41.76 seconds.
2018-02-07 19:09:33,600 - util.py[WARNING]: Activating mounts via 'mount -a' failed

1 个答案:

答案 0 :(得分:0)

在这篇文章中,它提到Amazon Linux上的cloud-init不支持fs_setup模块。我认为这就是导致失败的原因。

https://stackoverflow.com/a/53194483/8431665

我认为您可以尝试使用bootcmd,mount和runcmd直接格式化和装载EBS。