lmn-client/livebox.yml
2023-02-07 19:18:57 +01:00

89 lines
2.4 KiB
YAML

## This playbook deploys the LiveBox.
##
## The LiveBox provides Debian Live and Installer images on top
## of an already existing network with minimal modifications to
## existing infrastructure. It does not provide DHCP; the idea
## is to chainload the LiveBox' menu (iPXE or Grub) from PXE
## infrastructure already in place.
##
## To chainload the LiveBox in iPXE use:
## > item livebox Chainload Menu from LiveBox
## > …
## > :livebox chain tftp://livebox.lan/d-i/n-a/menu.ipxe
##
## To chainload the LiveBox in Grub use:
## > menuentry 'Chainload Menu from LiveBox' {
## > configfile (tftp,livebox.lan)/d-i/n-a/grub/grub.cfg
## > }
##
---
- name: apply configuration to the livebox
hosts: all
remote_user: ansible
become: true
vars:
extra_pkgs:
- lighttpd
- nfs-kernel-server
extra_pkgs_bpo:
- atftpd
- di-netboot-assistant
- apt-cacher-ng
live_desktop:
- gnome
- kde
- standard
live_url: 'https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/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_version: "{{ ansible_distribution_major_version }}"
di_pkg: "debian-installer-{{ di_version }}-netboot-amd64"
boot_params:
- boot=live
- netboot=nfs
- components
- locales=de_DE.UTF-8
- keyboard-layouts=de
- quiet
- splash
# - noroot
ansible_python_interpreter: "/usr/bin/python3"
pre_tasks:
- name: preseed atftpd
debconf:
name: atftpd
question: atftpd/basedir
value: /var/lib/tftpboot
vtype: string
- name: find available iso images
uri:
url: "{{ live_url }}"
return_content: true
register: idx
- name: find and set ISO image version
set_fact:
version: "{{ idx.content | regex_findall('debian-live-(\\d+\\.\\d+\\.\\d+)-amd64-', '\\1') | first }}"
- name: define ISO image map
set_fact:
live_iso: "{{ live_iso | default({}) | combine({ item: 'debian-live-' + version + '-amd64-' + item + '+nonfree.iso' }) }}"
loop: "{{ live_desktop }}"
roles:
- up2date_debian
- netbootinstaller
- aptcacher
- debianlive
- edulive