Cloud-init fornece o disk_setup, fs_setup e monta módulos para particionar, formatar e montar um volume em uma máquina virtual, no entanto, essas opções permanecem não documentadas em link e AWS.
Existe um exemplo funcional de configuração do cloud-init que particionará, formatará e montará um único volume do EBS na AWS para uma instância provisionada da seguinte forma:
"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"
}
},
O mais próximo que eu tenho até agora é o seguinte (com problemas de sintaxe corrigidos):
disk_setup:
/dev/xvdh:
layout: true
overwrite: false
table_type: 'mbr'
fs_setup:
- label: data
device: /dev/xvdh0
filesystem: ext4
mounts:
- [ xvdh0, /opt/data ]
De acordo com o cloud-init-output.log, a tentativa de particionar falha da seguinte forma:
2015-12-08 15:23:11,534 - util.py[WARNING]: Failed partitioning operation
'list' object has no attribute 'splitlines'
(Por razões não documentadas, uma tentativa de criar um volume chamado / dev / sdh resulta em uma partição que aparece chamada / dev / xvdh, portanto, a incompatibilidade na nomenclatura)