-
-
Save joedborg/2ad747923104273c79dda76fe5063ce2 to your computer and use it in GitHub Desktop.
| #!/bin/env bash | |
| set -e | |
| readonly VM="banana" | |
| readonly CPU="8" | |
| readonly MEM="8GB" | |
| readonly DSK="120GB" | |
| lxc init images:ubuntu/focal ${VM} -p default -p vm --vm | |
| lxc config set ${VM} limits.cpu ${CPU} | |
| lxc config set ${VM} limits.memory ${MEM} | |
| lxc config device override ${VM} root size=${DISK} | |
| lxc start ${VM} | |
| sleep 10 # `lxc start` needs a `--wait`. | |
| lxc exec ${VM} -- apt update | |
| lxc exec ${VM} -- apt install cloud-initramfs-growroot -y | |
| lxc exec ${VM} -- growpart /dev/sda 2 | |
| lxc exec ${VM} -- resize2fs /dev/sda2 |
| config: | |
| user.user-data: | | |
| apt_mirror: http://us.archive.ubuntu.com/ubuntu/ | |
| ssh_pwauth: yes | |
| users: | |
| - name: ubuntu | |
| passwd: "\$6\$s.wXDkoGmU5md\$d.vxMQSvtcs1I7wUG4SLgUhmarY7BR.5lusJq1D9U9EnHK2LJx18x90ipsg0g3Jcomfp0EoGAZYfgvT22qGFl/" | |
| lock_passwd: false | |
| groups: lxd | |
| shell: /bin/bash | |
| sudo: ALL=(ALL) NOPASSWD:ALL | |
| growpart: | |
| mode: auto | |
| devices: | |
| - '/' | |
| - '/dev/sda' | |
| - '/dev/sda2' | |
| ignore_growroot_disabled: false | |
| description: VN profile | |
| devices: | |
| config: | |
| source: cloud-init:config | |
| type: disk | |
| eth0: | |
| nictype: bridged | |
| parent: lxdbr0 | |
| type: nic | |
| root: | |
| path: / | |
| pool: default | |
| size: 100GB | |
| type: disk | |
| name: vm |
For newer LXD versions (5.8 and LTS 5.0.2) you can use the -d flag to increase the disk size of LXD virtual machines:
lxc launch "images:ubuntu/jammy/cloud" jammy --vm -c limits.cpu=4 -c limits.memory=8GiB -d root,size=50GiB
I tested this with version 5.0.2-838e1b2 👍
See also:
When I try to apply the above mentioned profile sudo lxc launch images:ubuntu/22.04 w1 -p myprofile the commands inside user.user-data do not get applied. My custom limits like cpus and RAM is respected but root size and installing packages defined within user.user-data do not work. I am using lxd 5.10. Do you guys have any experience with this kind of error?
Is there a way in the profile to have the VM be configured with LVM partitioning?
Something like this (as an example):
profiles:
- name: lma-vm
config:
limits.cpu: "2"
limits.memory: 16GB
security.secureboot: "false"
description: "LVM Configuration for LMA Platform"
devices:
root:
path: /
pool: default
size: 80GB
type: disk
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
storage:
config:
ptable: gpt
path: /dev/sda
wipe: superblock-recursive
preserve: false
grub_device: true
type: disk
id: disk-sda
partitions:
- number: 1
device: disk-sda
flag: bios_grub
size: 1M
id: bios-grub
type: partition
- number: 2
device: disk-sda
flag: boot
size: 1G
id: sda-boot
type: partition
- number: 3
device: disk-sda
size: -1
id: sda-lvm
type: lvm_volgroup
name: vg00
devices: [sda-lvm]
partitions:
- id: lvroot
name: lvroot
size: 20G
type: lvm_partition
volgroup: vg00
Agreed. I spent all morning looking for this!
I do have one question though. I changed the user from "ubuntu" to "tux" because that's my preferred generic user, but tux isn't created but there is still an ubuntu user. Any suggestions?