Implement livebox gnome-edu image build.

This commit is contained in:
Andreas B. Mundt 2022-06-26 09:03:26 +02:00 committed by Andreas B. Mundt
parent 6438585128
commit 829b8b4d3b
55 changed files with 608 additions and 4 deletions

View file

@ -15,6 +15,7 @@
## > menuentry 'Chainload Menu from LiveBox' { ## > menuentry 'Chainload Menu from LiveBox' {
## > configfile (tftp,livebox.lan)/d-i/n-a/grub/grub.cfg ## > configfile (tftp,livebox.lan)/d-i/n-a/grub/grub.cfg
## > } ## > }
##
--- ---
- name: apply configuration to the livebox - name: apply configuration to the livebox
hosts: all hosts: all
@ -37,6 +38,12 @@
- iso: 'debian-live-11.3.0-amd64-standard+nonfree.iso' - iso: 'debian-live-11.3.0-amd64-standard+nonfree.iso'
name: 'standard-cli' name: 'standard-cli'
live_url: 'https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/11.3.0-live+nonfree/amd64/iso-hybrid/' live_url: 'https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/11.3.0-live+nonfree/amd64/iso-hybrid/'
# The edulive role generates customized Debian-Live images.
# Make sure you have sufficient disk space available (~30GiB?).
build_images:
- gnome-edu
di_dist: "{{ ansible_distribution_release }}" di_dist: "{{ ansible_distribution_release }}"
di_version: "{{ ansible_distribution_major_version }}" di_version: "{{ ansible_distribution_major_version }}"
di_pkg: "debian-installer-{{ di_version }}-netboot-amd64" di_pkg: "debian-installer-{{ di_version }}-netboot-amd64"
@ -65,3 +72,4 @@
- netbootinstaller - netbootinstaller
- aptcacher - aptcacher
- debianlive - debianlive
- edulive

View file

@ -38,11 +38,16 @@
line: "/var/lib/tftpboot/d-i/n-live/ *(ro,crossmnt,no_subtree_check)" line: "/var/lib/tftpboot/d-i/n-live/ *(ro,crossmnt,no_subtree_check)"
notify: export nfs notify: export nfs
- name: configure ipxe boot menu address - name: configure ipxe boot menu address and headline
replace: replace:
path: /etc/di-netboot-assistant/ipxemenu.HEAD path: /etc/di-netboot-assistant/ipxemenu.HEAD
regexp: '^(set 210:string tftp://\${next-server}/)$' regexp: "{{ item.reg }}"
replace: '#\1\nset 210:string http://{{ ansible_default_ipv4.address }}/' replace: "{{ item.rep }}"
loop:
- reg: '^(set 210:string tftp://\${next-server}/)$'
rep: '#\1\nset 210:string http://{{ ansible_default_ipv4.address }}/'
- reg: '^#(item --gap -- -- Customized Boot Entries.*)$'
rep: '\1'
notify: rebuild di-netboot menu notify: rebuild di-netboot menu
- name: configure grub boot menu addresses - name: configure grub boot menu addresses
@ -57,7 +62,7 @@
- name: prepare debian live nfs boot entry title - name: prepare debian live nfs boot entry title
lineinfile: lineinfile:
path: /etc/di-netboot-assistant/ipxemenu.HEAD path: /etc/di-netboot-assistant/ipxemenu.HEAD
insertafter: '^menu iPXE Boot Menu' insertafter: '-- Customized Boot Entries --'
line: "item {{ item.name }} Debian GNU/Linux {{ item.name }} NFS" line: "item {{ item.name }} Debian GNU/Linux {{ item.name }} NFS"
loop: loop:
"{{ live_images }}" "{{ live_images }}"

View file

@ -0,0 +1 @@
build_dir: /opt/live-build/

View file

@ -0,0 +1,2 @@
This config space is based on:
https://salsa.debian.org/live-team/live-images/-/tree/debian/images/gnome-desktop

View file

@ -0,0 +1,5 @@
#!/bin/sh
set -e
lb build noauto "${@}" 2>&1 | tee build.log

View file

@ -0,0 +1,10 @@
#!/bin/sh
set -e
lb clean noauto "${@}"
rm -f config/binary config/bootstrap config/chroot config/common config/source
rm -f config/control
rm -f build.log

View file

@ -0,0 +1,18 @@
#!/bin/sh
set -e
lb config noauto \
--clean \
--cache false \
--net-tarball false \
--ignore-system-defaults \
--distribution bullseye \
--binary-images netboot \
--mode debian \
--backports true \
--linux-packages linux-image \
--archive-areas "main contrib non-free" \
--mirror-bootstrap http://localhost:3142/deb.debian.org/debian/ \
--mirror-chroot-security http://localhost:3142/security.debian.org/debian-security/ \
"${@}"

View file

@ -0,0 +1,8 @@
#!/bin/sh
set -e
if [ -e /usr/sbin/plymouth-set-default-theme ] && [ -e /usr/share/plymouth/themes/lines ]
then
plymouth-set-default-theme lines
fi

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/live/0010-disable-kexec-tools.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/live/0050-disable-sysvinit-tmpfs.hook.chroot

View file

@ -0,0 +1,15 @@
#!/bin/sh
set -e
echo 'pref("browser.startup.homepage", "https://www.startpage.com");' >> /etc/firefox-esr/firefox-esr.js
echo 'pref("network.proxy.type", 4);' >> /etc/firefox-esr/firefox-esr.js
dconf update
#sed -i "s/^/#/" /etc/xdg/user-dirs.defaults
sed -i "s/^#WaylandEnable=false$/WaylandEnable=false/" /etc/gdm3/daemon.conf
## workaround https://bugzilla.gnome.org/show_bug.cgi?id=730587
#dpkg-divert --divert /usr/bin/gnome-keyring-daemon.bak --rename /usr/bin/gnome-keyring-daemon

View file

@ -0,0 +1,5 @@
#!/bin/sh
set -e
## allow everybody to run wireshark:
chmod 0755 /usr/bin/dumpcap

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0020-create-mtab-symlink.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0030-enable-cryptsetup.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0040-create-locales-files.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0100-remove-adjtime-configuration.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0110-remove-backup-files.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0120-remove-dbus-machine-id.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0130-remove-gnome-icon-cache.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0140-remove-log-files.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0150-remove-mdadm-configuration.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0160-remove-openssh-server-host-keys.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0170-remove-python-py.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0180-remove-systemd-machine-id.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0190-remove-temporary-files.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0195-remove-ssl-cert-snakeoil.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0200-remove-udev-persistent-cd-rules.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0300-remove-udev-persistent-net-rules.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0400-update-apt-file-cache.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0410-update-apt-xapian-index.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0420-update-glx-alternative.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0430-update-mlocate-database.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0440-update-nvidia-alternative.hook.chroot

View file

@ -0,0 +1 @@
/usr/share/live/build/hooks/normal/0500-reproducible-glibc.hook.chroot

View file

@ -0,0 +1,8 @@
[org/gnome/login-screen]
disable-user-list=true
logo='/usr/share/desktop-base/debian-logos/logo-text-64.png'
[org/gnome/settings-daemon/plugins/power]
power-button-action='interactive'
sleep-inactive-ac-timeout=600
sleep-inactive-ac-type='interactive'

View file

@ -0,0 +1,34 @@
[org/gnome/shell]
enabled-extensions=['apps-menu@gnome-shell-extensions.gcampax.github.com', 'window-list@gnome-shell-extensions.gcampax.github.com', 'places-menu@gnome-shell-extensions.gcampax.github.com', 'drive-menu@gnome-shell-extensions.gcampax.github.com', 'dash-to-dock@micxgx.gmail.com']
[org/gnome/desktop/input-sources]
sources=[('xkb', 'de'), ('xkb', 'us')]
[org/gnome/desktop/wm/preferences]
button-layout='appmenu:minimize,maximize,close'
[org/gnome/desktop/peripherals/touchpad]
natural-scroll=false
edge-scrolling-enabled=true
tap-to-click=true
[org/gnome/nautilus/preferences]
default-folder-viewer='list-view'
[org/gnome/nautilus/list-view]
use-tree-view=true
[org/gnome/settings-daemon/plugins/power]
power-button-action='interactive'
sleep-inactive-battery-timeout=600
sleep-inactive-battery-type='hibernate'
sleep-inactive-ac-timeout=6000
sleep-inactive-ac-type='nothing'
[org/gnome/desktop/screensaver]
lock-enabled=false
[org/gnome/desktop/interface]
clock-show-date=true
clock-show-seconds=true
clock-show-weekday=true

View file

@ -0,0 +1,3 @@
user-db:user
system-db:gdm
file-db:/usr/share/gdm/greeter.dconf-defaults

View file

@ -0,0 +1,2 @@
user-db:user
system-db:local

View file

@ -0,0 +1,151 @@
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit netboot
or other application using the libvirt API.
-->
<domain type='kvm'>
<name>netboot</name>
<uuid>60ea84db-de6c-493c-8e3f-8e9a99ee19c2</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/11"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/netboot_VARS.fd</nvram>
<boot dev='network'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-model' check='partial'>
<model fallback='allow'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<interface type='direct'>
<mac address='52:54:00:VMMAC'/>
<source dev='INTERFACE' mode='bridge'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='network'>
<mac address='52:54:00:46:a6:25'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</interface>
<interface type='network'>
<mac address='52:54:00:5c:fc:08'/>
<source network='intern'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</rng>
</devices>
</domain>

View file

@ -0,0 +1,14 @@
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh net-edit intern
or other application using the libvirt API.
-->
<network>
<name>intern</name>
<uuid>399d67ae-263b-4aeb-995d-fe0a44f00132</uuid>
<bridge name='virbr1' stp='on' delay='0'/>
<mac address='52:54:00:93:e1:ee'/>
<domain name='intern'/>
</network>

View file

@ -0,0 +1,3 @@
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3

View file

@ -0,0 +1,11 @@
#!/bin/sh
# Fix deployed VM config
set -eu
NIC="$(ip link | grep "^2: " | cut -d ' ' -f2 | sed "s/://")"
MAC="$(ip link | grep -A1 "^2: " | grep -oE "[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2} " \
| sed "s/ //g")"
sed -i -e "s/VMMAC/$MAC/g" -e "s/INTERFACE/$NIC/g" /etc/libvirt/qemu/netboot.xml

View file

@ -0,0 +1,11 @@
task-gnome-desktop
gnome-shell-extension-dashtodock
gnome-shell-extension-dash-to-panel
plymouth
plymouth-x11
gstreamer1.0-vaapi
i965-va-driver
auto-apt-proxy

View file

@ -0,0 +1,2 @@
live-manual
live-tools

View file

@ -0,0 +1,3 @@
live-boot
live-config
live-config-systemd

View file

@ -0,0 +1,2 @@
task-english
task-german

View file

@ -0,0 +1,100 @@
#
# This file is linked to all desktop configurations.
# Put desktop specific packages in the desktop specific file.
#
#webext-ublock-origin-firefox
#webext-ublock-origin-chromium
webext-ublock-origin
webext-privacy-badger
vim
emacs
vlc
gimp
inkscape
bluefish
openboard
xournal
freecad
librecad
kicad
git
mc
tmux
wireshark
nmap
netcat-openbsd
net-tools
thonny
spyder
ghex
codeblocks
gprolog
qtcreator
obs-studio
mu-editor
dia
vym
shellcheck
xterm
tree
console-setup
virt-manager
sway
task-german-desktop
ssh-askpass-gnome
keepassxc
#nextcloud-desktop
#nautilus-nextcloud
#thunderbird
#thunderbird-l10n-de
#texlive
#texlive-latex-extra
#texlive-lang-german
#texlive-science
pdf-presenter-console
libreoffice/bullseye-backports
libreoffice-core/bullseye-backports
libreoffice-common/bullseye-backports
libreoffice-writer/bullseye-backports
libreoffice-calc/bullseye-backports
libreoffice-impress/bullseye-backports
libreoffice-base/bullseye-backports
libreoffice-base-drivers/bullseye-backports
libreoffice-math/bullseye-backports
libreoffice-report-builder-bin/bullseye-backports
libreoffice-style-colibre/bullseye-backports
libreoffice-gnome/bullseye-backports
libreoffice-gtk3/bullseye-backports
libreoffice-style-elementary/bullseye-backports
libreoffice-help-common/bullseye-backports
libreoffice-help-de/bullseye-backports
libreoffice-java-common/bullseye-backports
libreoffice-l10n-de/bullseye-backports
libreoffice-nlpsolver/bullseye-backports
libreoffice-report-builder/bullseye-backports
libreoffice-script-provider-bsh/bullseye-backports
libreoffice-script-provider-js/bullseye-backports
libreoffice-script-provider-python/bullseye-backports
libreoffice-sdbc-firebird/bullseye-backports
libreoffice-sdbc-hsqldb/bullseye-backports
libreoffice-sdbc-mysql/bullseye-backports
libreoffice-sdbc-postgresql/bullseye-backports
libreoffice-wiki-publisher/bullseye-backports
python3-uno/bullseye-backports
libuno-sal3/bullseye-backports
fonts-opensymbol/bullseye-backports
ure/bullseye-backports

View file

@ -0,0 +1,4 @@
! Packages Priority standard
task-laptop
task-ssh-server

View file

@ -0,0 +1 @@
wireshark-common wireshark-common/install-setuid boolean true

View file

@ -0,0 +1,5 @@
---
- name: run the image build script
command:
cmd: livebuilder.sh
listen: run build script

View file

@ -0,0 +1,66 @@
---
- name: install packages
apt:
name:
- live-build
state: latest # noqa package-latest
- name: prepare live-build directory
file:
path: "{{ build_dir }}"
state: directory
mode: 0755
- name: copy build script
template:
src: livebuilder.sh
dest: /usr/local/sbin/
mode: 0755
- name: copy live-build configuration
copy:
src: "{{ item }}"
dest: "{{ build_dir }}"
local_follow: false
mode: preserve
loop: "{{ build_images }}"
notify: run build script
- name: prepare debian live nfs boot entry title
lineinfile:
path: /etc/di-netboot-assistant/ipxemenu.HEAD
insertafter: '-- Customized Boot Entries --'
line: "item {{ item }} Debian GNU/Linux {{ item }} NFS"
loop:
"{{ build_images }}"
notify: rebuild di-netboot menu
- name: prepare debian live boot loader ipxe
blockinfile:
path: /etc/di-netboot-assistant/ipxemenu.HEAD
marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item }}"
block: |
:{{ item }}
echo Booting Debian GNU/Linux EDU LIVE
kernel ${210:string}d-i/n-live/{{ item }}/live/vmlinuz \
initrd=initrd.img-5.10.0-13-amd64 {{ boot_params|join(' ') }} \
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/{{ item }}/
initrd ${210:string}d-i/n-live/{{ item }}/live/initrd.img
boot
loop: "{{ build_images }}"
notify: rebuild di-netboot menu
- name: prepare debian live boot loader grub
blockinfile:
path: /etc/di-netboot-assistant/grub.cfg.HEAD
insertbefore: "^menuentry 'Boot from local disk..'"
marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item }}"
block: |
menuentry 'Debian GNU/Linux Live {{ item }}' {
linux (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item }}/live/vmlinuz \
{{ boot_params|join(' ') }} \
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/{{ item }}/
initrd (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item }}/live/initrd.img
}
loop: "{{ build_images }}"
notify: rebuild di-netboot menu

View file

@ -0,0 +1,27 @@
#!/usr/bin/bash
#
# build live images and copy kernel, initramfs and squashfs
#
set -eu
BUILDD="{{ build_dir }}"
run_build(){
local DEST="/var/lib/tftpboot/d-i/n-live/$1/live/"
cd "$BUILDD/$1"
[[ -d "$DEST" ]] || mkdir -vp "$DEST"
lb clean && lb config && lb build
for FILE in vmlinuz initrd.img filesystem.squashfs ; do
ln -vf "$BUILDD/$1/binary/live/$FILE" "$DEST"
done
}
## main:
for IMG in {{ build_images|join(' ') }} ; do
echo "=========== Building image $IMG ==========="
run_build $IMG
done

View file

@ -0,0 +1,54 @@
---
- name: install packages
apt:
name:
- live-build
state: latest # noqa package-latest
- name: prepare live-build directory
file:
path: /opt/live-build/
state: directory
mode: 0755
- name: copy build script
template:
src: livebuilder.sh
dest: /usr/local/sbin/
mode: 0755
- name: copy live-build configuration
copy:
src: gnome-edu
dest: /opt/live-build/
local_follow: false
notify: build image
- name: prepare debian live boot loader ipxe
blockinfile:
path: /etc/di-netboot-assistant/ipxemenu.HEAD
marker: "# {mark} ANSIBLE MANAGED BLOCK gnome-edu"
block: |
:gnome-edu
echo Booting Debian GNU/Linux EDU LIVE
kernel ${210:string}d-i/n-live/gnome-edu/live/vmlinuz \
initrd=initrd.img-5.10.0-13-amd64 {{ boot_params|join(' ') }} \
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/gnome-edu/
initrd ${210:string}d-i/n-live/gnome-edu/live/initrd.img
boot
notify: rebuild di-netboot menu
- name: prepare debian live boot loader grub
blockinfile:
path: /etc/di-netboot-assistant/grub.cfg.HEAD
insertbefore: "^menuentry 'Boot from local disk..'"
marker: "# {mark} ANSIBLE MANAGED BLOCK gnome-edu"
block: |
menuentry 'Debian GNU/Linux Live gnome-edu' {
linux (http,{{ ansible_default_ipv4.address }})/d-i/n-live/gnome-edu/live/vmlinuz \
{{ boot_params|join(' ') }} \
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/gnome-edu/
initrd (http,{{ ansible_default_ipv4.address }})/d-i/n-live/gnome-edu/live/initrd.img
}
notify: rebuild di-netboot menu