Cloud-init提供了disk_setup,fs_setup和mounts模块来对虚拟机进行分区,格式化和挂载,但是这些选项在http://cloudinit.readthedocs.org和AWS上都是未logging的。
是否存在cloud-initconfiguration的function示例,该示例将在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'
(由于未公开的原因,尝试创build一个名为/ dev / sdh的卷会导致出现一个名为/ dev / xvdh的分区,从而导致命名不匹配)
我知道这是旧的,但这是我想出来的:
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中的cloud_init_modules列表中; 它不在默认情况下,所以fs_setup (由cc_disk_setup处理)不会有任何影响。