First commit, livebox without installer entry
This commit is contained in:
commit
790f0327ca
64 changed files with 931 additions and 0 deletions
10
roles/debianlive/handlers/main.yml
Normal file
10
roles/debianlive/handlers/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
- name: rebuild di-netboot assistant menu
|
||||
command:
|
||||
cmd: di-netboot-assistant rebuild-menu
|
||||
listen: rebuild di-netboot menu
|
||||
|
||||
- name: export nfs
|
||||
command:
|
||||
cmd: exportfs -ra
|
||||
listen: export nfs
|
128
roles/debianlive/tasks/main.yml
Normal file
128
roles/debianlive/tasks/main.yml
Normal file
|
@ -0,0 +1,128 @@
|
|||
---
|
||||
- name: download debian-live images
|
||||
get_url:
|
||||
url: "{{ live_url }}{{ item.value }}"
|
||||
dest: "/var/cache/di-netboot-assistant/{{ item.value }}"
|
||||
checksum: "sha256:{{ live_url }}/SHA256SUMS"
|
||||
register: new_iso
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
|
||||
- name: umount old iso images
|
||||
mount:
|
||||
path: "/var/lib/tftpboot/d-i/n-live/{{ item.key }}"
|
||||
state: unmounted
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
when: new_iso.changed
|
||||
|
||||
- name: prepare live image directory
|
||||
file:
|
||||
path: "/var/lib/tftpboot/d-i/n-live/{{ item.key }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
|
||||
- name: make sure loop module is loaded
|
||||
modprobe:
|
||||
name: loop
|
||||
state: present
|
||||
|
||||
- name: loop mount iso images
|
||||
mount:
|
||||
path: "/var/lib/tftpboot/d-i/n-live/{{ item.key }}"
|
||||
src: "/var/cache/di-netboot-assistant/{{ item.value }}"
|
||||
fstype: iso9660
|
||||
opts: loop,ro,nofail
|
||||
state: mounted
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
notify: rebuild di-netboot menu
|
||||
|
||||
- name: prepare http downloads
|
||||
file:
|
||||
src: "/var/lib/tftpboot/d-i/"
|
||||
dest: "/var/www/html/d-i"
|
||||
state: link
|
||||
|
||||
- name: export live image squashfs
|
||||
lineinfile:
|
||||
path: /etc/exports
|
||||
line: "/var/lib/tftpboot/d-i/n-live/ *(ro,crossmnt,no_subtree_check)"
|
||||
notify: export nfs
|
||||
|
||||
- name: configure ipxe boot menu address and headline
|
||||
replace:
|
||||
path: /etc/di-netboot-assistant/ipxemenu.HEAD
|
||||
regexp: "{{ item.reg }}"
|
||||
replace: "{{ item.rep }}"
|
||||
loop:
|
||||
- reg: '^set 210:string .+$'
|
||||
rep: 'set 210:string http://{{ ansible_default_ipv4.address }}/'
|
||||
- reg: '^#(item --gap -- -- Customized Boot Entries.*)$'
|
||||
rep: '\1'
|
||||
notify: rebuild di-netboot menu
|
||||
|
||||
- name: configure grub boot menu addresses
|
||||
lineinfile:
|
||||
path: /etc/di-netboot-assistant/grub.cfg.HEAD
|
||||
line: "{{ item.line }}"
|
||||
regexp: "{{ item.reg }}"
|
||||
loop:
|
||||
- line: "set root=(http,{{ ansible_default_ipv4.address }})"
|
||||
reg: "^set root="
|
||||
- line: "set pxe_default_server={{ ansible_default_ipv4.address }}"
|
||||
reg: "^set pxe_default_server="
|
||||
notify: rebuild di-netboot menu
|
||||
|
||||
- name: prepare debian live nfs boot entry title
|
||||
lineinfile:
|
||||
path: /etc/di-netboot-assistant/ipxemenu.HEAD
|
||||
insertafter: '-- Customized Boot Entries --'
|
||||
line: "item {{ item.key }} Debian GNU/Linux {{ item.key }} NFS"
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
notify: rebuild di-netboot menu
|
||||
|
||||
- name: find kernel version
|
||||
shell:
|
||||
cmd: >-
|
||||
basename /var/lib/tftpboot/d-i/n-live/{{ item.key }}/live/vmlinuz*
|
||||
| sed "s/vmlinuz-//"
|
||||
register: images
|
||||
changed_when: false
|
||||
loop:
|
||||
"{{ live_iso | dict2items }}"
|
||||
|
||||
- name: prepare debian live boot loader ipxe
|
||||
blockinfile:
|
||||
path: /etc/di-netboot-assistant/ipxemenu.HEAD
|
||||
marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item.item.key }}"
|
||||
block: |
|
||||
:{{ item.item.key }}
|
||||
echo Booting Debian GNU/Linux {{ item.item.key }} NFS
|
||||
kernel ${210:string}d-i/n-live/{{ item.item.key }}/live/vmlinuz-{{ item.stdout }} \
|
||||
initrd=initrd.img-{{ item.stdout }} {{ boot_params|join(' ') }} \
|
||||
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/{{ item.item.key }}/
|
||||
initrd ${210:string}d-i/n-live/{{ item.item.key }}/live/initrd.img-{{ item.stdout }}
|
||||
boot
|
||||
loop:
|
||||
"{{ images.results }}"
|
||||
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.item.key }}"
|
||||
block: |
|
||||
menuentry 'Debian GNU/Linux Live {{ item.item.key }} NFS' {
|
||||
linux (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item.item.key }}/live/vmlinuz-{{ item.stdout }} \
|
||||
{{ boot_params|join(' ') }} \
|
||||
nfsroot={{ ansible_default_ipv4.address }}:/var/lib/tftpboot/d-i/n-live/{{ item.item.key }}/
|
||||
initrd (http,{{ ansible_default_ipv4.address }})/d-i/n-live/{{ item.item.key }}/live/initrd.img-{{ item.stdout }}
|
||||
}
|
||||
loop:
|
||||
"{{ images.results }}"
|
||||
notify: rebuild di-netboot menu
|
Loading…
Add table
Add a link
Reference in a new issue