2023-09-04 15:30:10 +02:00
|
|
|
---
|
|
|
|
- name: install packages
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.apt:
|
2023-09-04 15:30:10 +02:00
|
|
|
name:
|
|
|
|
- live-build
|
2023-09-05 15:11:41 +02:00
|
|
|
- systemd-journal-remote
|
2023-09-04 15:30:10 +02:00
|
|
|
state: latest # noqa package-latest
|
|
|
|
|
|
|
|
- name: prepare live-build directory
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.file:
|
|
|
|
path: /etc/systemd/system/systemd-journal-remote.service.d/
|
|
|
|
state: directory
|
|
|
|
mode: 0755
|
|
|
|
|
|
|
|
- name: configure remote journal
|
|
|
|
ansible.builtin.blockinfile:
|
|
|
|
path: /etc/systemd/system/systemd-journal-remote.service.d/override.conf
|
|
|
|
create: true
|
|
|
|
block: |
|
|
|
|
[Service]
|
|
|
|
ExecStart=
|
|
|
|
ExecStart=/lib/systemd/systemd-journal-remote --listen-http=-3 --output=/var/log/journal/remote
|
|
|
|
notify: restart systemd-journal-remote
|
|
|
|
|
|
|
|
- name: prepare live-build directory
|
|
|
|
ansible.builtin.file:
|
2023-09-04 15:30:10 +02:00
|
|
|
path: "{{ build_dir }}"
|
|
|
|
state: directory
|
|
|
|
mode: 0755
|
|
|
|
|
|
|
|
- name: copy build script
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.template:
|
2023-09-04 15:30:10 +02:00
|
|
|
src: livebuilder.sh
|
|
|
|
dest: /usr/local/sbin/
|
|
|
|
mode: 0755
|
|
|
|
|
2023-09-05 15:11:41 +02:00
|
|
|
- name: prepare shared directory
|
|
|
|
ansible.builtin.file:
|
|
|
|
path: "/srv/tmpshare"
|
|
|
|
state: directory
|
|
|
|
mode: "1777"
|
|
|
|
|
|
|
|
- name: mount tmpfs on shared directory
|
|
|
|
ansible.builtin.mount:
|
|
|
|
path: "/srv/tmpshare/"
|
|
|
|
src: "tmpfs"
|
|
|
|
fstype: tmpfs
|
|
|
|
opts: rw,nofail
|
|
|
|
state: mounted
|
|
|
|
|
|
|
|
- name: export shared directory
|
|
|
|
ansible.builtin.lineinfile:
|
|
|
|
path: /etc/exports
|
|
|
|
line: "/srv/tmpshare/ *(rw,fsid=0,crossmnt,no_subtree_check)"
|
|
|
|
notify: export nfs
|
|
|
|
|
2023-09-04 15:30:10 +02:00
|
|
|
- name: provide service and timer for livebuilder
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.copy:
|
2023-09-04 15:30:10 +02:00
|
|
|
src: "{{ item }}"
|
|
|
|
dest: "/etc/systemd/system/{{ item }}"
|
|
|
|
mode: 0644
|
|
|
|
with_items:
|
|
|
|
- livebuilder.service
|
|
|
|
- livebuilder.timer
|
|
|
|
notify: "enable livebuilder.timer"
|
|
|
|
|
|
|
|
- name: copy live-build configuration
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.copy:
|
2023-09-04 15:30:10 +02:00
|
|
|
src: "{{ item }}"
|
|
|
|
dest: "{{ build_dir }}"
|
2023-09-05 15:11:41 +02:00
|
|
|
force: false
|
2023-09-04 15:30:10 +02:00
|
|
|
local_follow: false
|
|
|
|
mode: preserve
|
|
|
|
loop: "{{ build_images }}"
|
|
|
|
|
|
|
|
- name: prepare debian live nfs boot entry title
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-09-04 15:30:10 +02:00
|
|
|
path: /etc/di-netboot-assistant/ipxemenu.HEAD
|
|
|
|
insertafter: '-- Customized Boot Entries --'
|
2023-09-05 15:11:41 +02:00
|
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK menu entries {{ item }}"
|
|
|
|
block: |
|
|
|
|
item {{ item }}-NFS Debian GNU/Linux {{ item }} NFS
|
|
|
|
item {{ item }}-RAM Debian GNU/Linux {{ item }} RAM
|
2023-09-04 15:30:10 +02:00
|
|
|
loop:
|
|
|
|
"{{ build_images }}"
|
|
|
|
notify: rebuild di-netboot menu
|
|
|
|
|
|
|
|
- name: prepare debian live boot loader ipxe
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-09-04 15:30:10 +02:00
|
|
|
path: /etc/di-netboot-assistant/ipxemenu.HEAD
|
|
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item }}"
|
|
|
|
block: |
|
2023-09-05 15:11:41 +02:00
|
|
|
:{{ item }}-NFS
|
|
|
|
echo Booting Debian GNU/Linux {{ item }} NFS
|
|
|
|
kernel ${210:string}d-i/n-live/{{ item }}/live/vmlinuz \
|
|
|
|
initrd=initrd.img netboot=nfs {{ boot_params|join(' ') }} hostname=${netX/mac} \
|
|
|
|
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
|
|
|
|
|
|
|
|
:{{ item }}-RAM
|
|
|
|
echo Booting Debian GNU/Linux {{ item }} RAM
|
2023-09-04 15:30:10 +02:00
|
|
|
kernel ${210:string}d-i/n-live/{{ item }}/live/vmlinuz \
|
2023-09-05 15:11:41 +02:00
|
|
|
initrd=initrd.img {{ boot_params|join(' ') }} hostname=${netX/mac} \
|
|
|
|
fetch=http://{{ ansible_default_ipv4.address }}/d-i/n-live/{{ item }}/live/filesystem.squashfs
|
2023-09-04 15:30:10 +02:00
|
|
|
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
|
2023-09-05 15:11:41 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-09-04 15:30:10 +02:00
|
|
|
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 }} NFS' {
|
2023-09-05 15:11:41 +02:00
|
|
|
regexp --set=1:oct4 --set=2:oct5 --set=3:oct6 \
|
|
|
|
"\:([[:xdigit:]]+)\:([[:xdigit:]]+)\:([[:xdigit:]]+)\$" $net_default_mac
|
|
|
|
linux (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item }}/live/vmlinuz \
|
|
|
|
netboot=nfs {{ boot_params|join(' ') }} hostname=${oct4}${oct5}${oct6} \
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
menuentry 'Debian GNU/Linux Live {{ item }} RAM' {
|
|
|
|
regexp --set=1:oct4 --set=2:oct5 --set=3:oct6 \
|
|
|
|
"\:([[:xdigit:]]+)\:([[:xdigit:]]+)\:([[:xdigit:]]+)\$" $net_default_mac
|
2023-09-04 15:30:10 +02:00
|
|
|
linux (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item }}/live/vmlinuz \
|
2023-09-05 15:11:41 +02:00
|
|
|
{{ boot_params|join(' ') }} hostname=${oct4}${oct5}${oct6} \
|
|
|
|
fetch=http://{{ ansible_default_ipv4.address }}/d-i/n-live/{{ item }}/live/filesystem.squashfs
|
2023-09-04 15:30:10 +02:00
|
|
|
initrd (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item }}/live/initrd.img
|
|
|
|
}
|
|
|
|
loop: "{{ build_images }}"
|
|
|
|
notify: rebuild di-netboot menu
|