Cloud-init 提供了 disk_setup、fs_setup 和 mounts 模块来对卷进行分区、格式化以及挂载到虚拟机,但是这些选项在http://cloudinit.readthedocs.org和 AWS。
是否存在 cloud-init 配置的功能示例,该示例将对 AWS 上的单个 EBS 卷进行分区、格式化并将其安装到如下配置的实例中:
"Volume" : {
"Type" : "AWS::EC2::Volume",
"Properties" : {
"Size" : "100",
"VolumeType" : "gp2",
"AvailabilityZone" : { "Fn::GetAtt" : [ "ServerInstance", "AvailabilityZone" ] }
},
"DeletionPolicy" : "Delete"
},
"MountVolume" : {
"Type" : "AWS::EC2::VolumeAttachment",
"Properties" : {
"InstanceId" : { "Ref" : "ServerInstance" },
"VolumeId" : { "Ref" : "Volume" },
"Device" : "/dev/sdh"
}
},
到目前为止我最接近的是以下内容(语法问题已更正):
disk_setup:
/dev/xvdh:
layout: true
overwrite: false
table_type: 'mbr'
fs_setup:
- label: data
device: /dev/xvdh0
filesystem: ext4
mounts:
- [ xvdh0, /opt/data ]
根据 cloud-init-output.log,分区尝试失败,如下所示:
2015-12-08 15:23:11,534 - util.py[WARNING]: Failed partitioning operation
'list' object has no attribute 'splitlines'
(由于未记录的原因,尝试创建名为 /dev/sdh 的卷会导致出现名为 /dev/xvdh 的分区,因此命名不匹配)
答案1
我知道这已经过时了,但是这是我想到的:
mounts:
- [ "LABEL=rkt", "/var/lib/rkt" ]
fs_setup:
## rkt
- device: /dev/xvdg
partition: none
label: rkt
filesystem: ext4
它将/dev/xvdg
未分区的格式设置为 ext4 并进行相应的标记。
我必须将其添加disk-setup
到cloud_init_modules
列表中/etc/cloud/cloud.cfg
;它默认不存在,因此fs_setup
(由处理cc_disk_setup
)不会产生任何影响。