How to Setup Partitions on My Boot Disk with Cloud-Config?
I Try to Initialize an Ubuntu 16.04 Server via Cloud-Init. While Booting the Server the First Time I Wanna Create the Following Partitions: Root-Fs (Ext4...
I try to initialize an ubuntu 16.04 server via cloud-init. While booting the server the first time I wanna create the following partitions:
- root-fs (ext4 filesystem ubuntu)
- data-disk (xfs formatted partition)
- swap disk (4gb)
when I boot the machine regularly (without any cloud-init) I have a sda and sda1 (I think sda1 is the swap).
Can someone help me out with a "valid" or "working" example or help me correct my approach?
Or is this impossible to make partitions on the disk where I am sitting on?
btw. my host is Hetzner
This is my current approach:
#cloud-config
device_aliases: {'root-disk': '/dev/sda'}
resize_rootfs: true
disk_setup:
root-disk:
table_type: 'gpt'
layout:
- 75
- [25, 82]
overwrite: true
fs_setup:
- label: root-fs
device: 'root-disk'
filesystem: 'ext4'
- label: data-disk
device: root-disk
filesystem: 'xfs'
1 Answer
To close that task I post here my answer:
Important to know is, that resize_rootfs has to be false
I also ended up using mbr instead of gpt only because I couldn't figure out how to evolve with gpt. Maybe someone could post that example too.
#cloud-config
resize_rootfs: false
disk_setup:
/dev/sda:
table_type: 'mbr'
layout:
- 25
- 75
overwrite: true
fs_setup:
- label: root_fs
filesystem: 'ext4'
device: /dev/sda
partition: sda1
overwrite: true
- label: data_disk
filesystem: 'xfs'
device: /dev/sda
partition: sda2
overwrite: true
# now we attach the settings
runcmd:
- [ partx, --update, /dev/sda ]
- [ mkfs.xfs, /dev/sda2 ]
- [ partprobe ]
- parted /dev/sda set 1 boot on p
mounts:
- ["/dev/sda1", "/"]
- ["/dev/sda2", "/data-disk"]