1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#!/usr/bin/env dmm-perform-recipe
module_path:
- local
global_settings:
chroot: &chroot /srv/dmm/chroot
diskimg: &diskimg /srv/dmm/disk.img
loopdev: &loopdev loop7
apt_depends: &apt_depends util-linux adduser parted e2fsprogs debootstrap ovmf
recipe:
create_disk:
module: files
function: create_sparse_file
destination: *diskimg
size: "20G"
create_partitions:
module: parted
destination: *diskimg
static-layout:
- mklabel gpt
- "mkpart primary 1M 50MB"
- set 1 esp on
- "mkpart primary 50MB 100%"
loop_disk:
module: losetup
function: setup
diskimg: *diskimg
mountpoint: *chroot
loopdev: *loopdev
format_partitions:
module: mkfs
partitions:
- esp:
fstype: vfat
partition: /dev/loop7p1
options: ''
- rootfs:
fstype: ext4
partition: /dev/loop7p2
options: -b 4096
mount_partitions:
module: mountfs
partitions:
- rootfs:
source: /dev/loop7p2
mountpoint: *chroot
mountopts: -o noatime,delalloc,barrier=0
fstype: ext4
- esp:
source: /dev/loop7p1
mountpoint: /srv/dmm/chroot/boot/efi
mountopts: ''
fstype: vfat
install_debian:
module: debootstrap
destination: /srv/dmm/chroot
release: testing
mirror: http://deb.debian.org/debian
debootstrapopts: ''
setup_network:
module: networking
chroot: *chroot
hostname: buildvm
add_users:
module: users
users:
- username: buildvm
password: buildvm
sudo: True
apt_setup:
module: aptsetup
chroot: *chroot
sources-list: |
deb http://deb.debian.org/debian unstable main
deb http://deb.debian.org/debian experimental main
sources-file: /etc/apt/sources.list
update-sources: True
install_linux:
module: linux
action: run
chroot: *chroot
package: linux-image-amd64
setup_bind_mounts:
module: mountfs
partitions:
- dev:
source: /dev
mountpoint: /srv/dmm/chroot/dev
mountopts: ''
fstype: devtmpfs
- proc:
source: /proc
mountpoint: /srv/dmm/chroot/proc
mountopts: ''
fstype: proc
- sys:
source: /sys
mountpoint: /srv/dmm/chroot/sys
mountopts: ''
fstype: sysfs
setup_grub:
module: grub
action: install
chroot: *chroot
platform: efi
setup_virtual_machine:
module: vmsetup
root-during-build: loop7p2
root-dev-in-vm: vda2
chroot: *chroot
install_dmm:
module: aptpkg
action: install
packages: dmm-utils
clean_cache: False
download_only: False
chroot: /srv/dmm/chroot
#TODO: set up shared storage?
#TODO: copy artifacts to new location
unmount_filesystems:
module: umountfs
mounts:
- proc:
mountpoint: /srv/dmm/chroot/proc
- sys:
mountpoint: /srv/dmm/chroot/sys
- dev:
mountpoint: /srv/dmm/chroot/dev
- efi:
mountpoint: /srv/dmm/chroot/boot/efi
- rootfs:
mountpoint: *chroot
loop_disk_unmount:
module: losetup
function: unmount
loopdev: *loopdev
|