File: build-in-vm.dmm

package info (click to toggle)
python3-dmm 0.1.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 540 kB
  • sloc: python: 441; makefile: 2
file content (139 lines) | stat: -rwxr-xr-x 3,792 bytes parent folder | download
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