Como uso o cloud-init para configurar um volume do AWS EBS na primeira inicialização?

4

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)

    
por Graham Leggett 02.12.2015 / 15:49

1 resposta

1

Eu sei que isso é antigo, mas aqui está o que eu criei:

mounts:
    - [ "LABEL=rkt", "/var/lib/rkt" ]

fs_setup:
    ## rkt
    -   device: /dev/xvdg
        partition: none
        label: rkt
        filesystem: ext4

Formata /dev/xvdg - não particionada - como ext4 e rotula de acordo.

Eu tive que adicionar disk-setup à lista cloud_init_modules em /etc/cloud/cloud.cfg ; não está lá por padrão, então fs_setup (que é processado por cc_disk_setup ) não teria nenhum efeito.

    
por 02.12.2016 / 21:42