89 lines
2.4 KiB
YAML
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
|