Cloud-init предоставляет модули disk_setup, fs_setup и монтирует для разделения, форматирования и подключения тома к виртуальной машине, однако эти параметры остаются недокументированными в обоих случаях. http://cloudinit.readthedocs.org и AWS.
Существует ли функциональный пример конфигурации cloud-init, который будет разделять, форматировать и монтировать один том EBS на AWS в экземпляр, подготовленный следующим образом:
"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, что приводит к несоответствию именования)
Я знаю, что это старое, но вот что я придумал:
mounts:
- [ "LABEL=rkt", "/var/lib/rkt" ]
fs_setup:
## rkt
- device: /dev/xvdg
partition: none
label: rkt
filesystem: ext4
Он форматирует /dev/xvdg
- unpartitioned - как ext4 и соответственно помечает его.
Мне пришлось добавить disk-setup
к cloud_init_modules
список в /etc/cloud/cloud.cfg
; его там нет по умолчанию, поэтому fs_setup
(который обрабатывается cc_disk_setup
) не повлияет.