Cloud-initはdisk_setup、fs_setupを提供し、ボリュームを仮想マシンにパーティション化、フォーマット、およびマウントするモジュールをマウントしますが、これらのオプションは http://cloudinit.readthedocs.org とAWSの両方で文書化されていません。
AWSで単一のEBSボリュームを次のようにプロビジョニングされたインスタンスにパーティション化、フォーマット、およびマウントするcloud-init構成の機能的な例はありますか?
"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
-パーティション化されていない-ext4として、それに応じてラベルを付けます。
追加しなければならなかったdisk-setup
からcloud_init_modules
リスト/etc/cloud/cloud.cfg
;デフォルトでは存在しないため、fs_setup
(これはcc_disk_setup
)は影響しません。