【问题标题】:Automounting ebs volume in linux-Ec2 instance using cloud formation?使用云形成在 linux-Ec2 实例中自动挂载 ebs 卷?
【发布时间】:2014-09-27 08:58:23
【问题描述】:

编写了一个 CFT 来创建附加了两个 ebs 卷的 redhat 实例。并且需要从 cft 本身自动挂载或格式化 ebs 卷。

CFT:

"BlockDeviceMappings": [
    {
        "DeviceName": "/dev/sda1",
        "Ebs": {
            "DeleteOnTermination": "true",
            "VolumeSize": "150",
            "VolumeType": "standard"
        }
    },
    {
        "DeviceName": "/dev/sdm",
        "Ebs": {
            "DeleteOnTermination": "true",
            "VolumeSize": "1000",
            "VolumeType": "standard"
        }
    }
]

需要自动挂载"DeviceName" : "/dev/sdm",这个卷。

【问题讨论】:

    标签: linux amazon-web-services amazon-ec2 amazon-ebs amazon-cloudformation


    【解决方案1】:

    您需要将一个小脚本添加到实例的 UserData 属性或与此 BlockDeviceMappings 关联的启动配置。 UserData 在实例第一次启动时执行。当实例使用 /etc/fstab 重新启动时,设备将自动重新挂载。

        "UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [
          "#!/bin/bash -v\n",
          "mkfs -t ext4 /dev/xvdm\n",
          "mkfs -t ext4 /dev/xvda1\n",
          "mkdir /opt/mount1 /opt/mount2\n",
          "mount /dev/xvdm /opt/mount1\n",
          "mount /dev/xvda1 /opt/mount2\n",
          "echo \"/dev/xvdm /opt/mount1 ext4 defaults,nofail 0 2\" >> /etc/fstab\n"
          "echo \"/dev/xvda1 /opt/mount2 ext4 defaults,nofail 0 2\" >> /etc/fstab\n"
        ]]}}
    

    更多信息:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

    【讨论】:

      【解决方案2】:

      与其在用户数据脚本中显式挂载,我更喜欢以下方法:

      "UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [
        "#!/bin/bash -v\n",
        "mkfs -t ext4 /dev/xvdm\n",
        "echo \"/dev/xvdm /opt/mount1 ext4 defaults,nofail 0 2\" >> /etc/fstab\n",
        "mount -a\n"
      ]]}}
      

      "mount -a" 将尝试挂载 /etc/fstab 中的所有条目,进而验证之前的附加操作。

      【讨论】:

        最近更新 更多