154 lines
5.3 KiB
YAML
154 lines
5.3 KiB
YAML
---
|
|
- name: check if iso exists
|
|
stat:
|
|
path: "{{ playbook_dir }}/debian-{{ debianunattended_debian_version }}-amd64-netinst-unattended-{{ inventory_hostname }}.iso"
|
|
delegate_to: localhost
|
|
register: iso_exists
|
|
|
|
- name: stop when facts not set to download Packages
|
|
meta: end_play
|
|
when: iso_exists.stat.exists
|
|
|
|
- name: install stuff
|
|
package:
|
|
name:
|
|
- xorriso
|
|
- unzip
|
|
- cdrkit
|
|
update_cache: yes
|
|
delegate_to: localhost
|
|
run_once: true
|
|
|
|
- name: create project directory
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}"
|
|
state: directory
|
|
delegate_to: localhost
|
|
|
|
- name: Download ISO Image
|
|
get_url:
|
|
url: "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-{{ debianunattended_debian_version }}-amd64-netinst.iso"
|
|
dest: "/opt/ansiblepackages/debianunattended/debian-{{ debianunattended_debian_version }}-amd64-netinst.iso"
|
|
delegate_to: localhost
|
|
run_once: true
|
|
|
|
- name: delete old stuff
|
|
file:
|
|
path: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/"
|
|
state: absent
|
|
delegate_to: localhost
|
|
|
|
- name: extract ISO Image
|
|
command: "xorriso -osirrox on -indev /opt/ansiblepackages/debianunattended/debian-{{ debianunattended_debian_version }}-amd64-netinst.iso -extract / /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/"
|
|
args:
|
|
creates: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/install.amd/initrd.gz"
|
|
delegate_to: localhost
|
|
|
|
- name: generate /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/preseed.cfg
|
|
template:
|
|
src: preseed.cfg.j2
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/preseed.cfg"
|
|
delegate_to: localhost
|
|
|
|
- name: generate /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/boot/grub/grub.cfg
|
|
template:
|
|
src: grub.cfg.j2
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/boot/grub/grub.cfg"
|
|
delegate_to: localhost
|
|
|
|
- name: edit /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/isolinux/isolinux.cfg
|
|
ansible.builtin.lineinfile:
|
|
path: /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/isolinux/isolinux.cfg
|
|
state: absent
|
|
line: 'default vesamenu.c32'
|
|
delegate_to: localhost
|
|
|
|
- name: generate /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/md5sum.sh
|
|
template:
|
|
src: md5sum.sh.j2
|
|
mode: "0755"
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/md5sum.sh"
|
|
delegate_to: localhost
|
|
|
|
- name: generate /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/mergepreseed.sh
|
|
template:
|
|
src: mergepreseed.sh.j2
|
|
mode: "0755"
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/mergepreseed.sh"
|
|
delegate_to: localhost
|
|
|
|
- name: set permissions
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/install.amd/"
|
|
mode: +w
|
|
recurse: yes
|
|
delegate_to: localhost
|
|
|
|
- name: Extract isofiles/install.amd/initrd.gz
|
|
command: gunzip isofiles/install.amd/initrd.gz
|
|
args:
|
|
chdir: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/"
|
|
delegate_to: localhost
|
|
|
|
- name: merge preseed.cfg
|
|
command: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/mergepreseed.sh"
|
|
delegate_to: localhost
|
|
|
|
- name: generate /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/late_command.sh
|
|
template:
|
|
src: late_command.sh.j2
|
|
mode: "0755"
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/late_command.sh"
|
|
delegate_to: localhost
|
|
|
|
- name: copy authorized_keys file
|
|
copy:
|
|
src: files/ssh-keys.pub
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/authorized_keys"
|
|
delegate_to: localhost
|
|
|
|
- name: copy sudoers file
|
|
copy:
|
|
src: files/sudoers
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/sudoers"
|
|
delegate_to: localhost
|
|
|
|
- name: compress isofiles/install.amd/initrd
|
|
command: gzip isofiles/install.amd/initrd
|
|
args:
|
|
chdir: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/"
|
|
delegate_to: localhost
|
|
|
|
- name: set permissions
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/install.amd/"
|
|
mode: -w
|
|
recurse: yes
|
|
delegate_to: localhost
|
|
|
|
- name: set permissions
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/md5sum.txt"
|
|
mode: +w
|
|
delegate_to: localhost
|
|
|
|
- name: generate md5sums
|
|
command: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/md5sum.sh"
|
|
delegate_to: localhost
|
|
|
|
- name: set permissions
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/md5sum.txt"
|
|
mode: -w
|
|
delegate_to: localhost
|
|
|
|
- name: set permissions
|
|
file:
|
|
dest: "/opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles/isolinux/isolinux.bin"
|
|
mode: +w
|
|
delegate_to: localhost
|
|
|
|
- name: genisoimage
|
|
command: "genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o {{ playbook_dir }}/debian-{{ debianunattended_debian_version }}-amd64-netinst-unattended-{{ inventory_hostname }}.iso /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles"
|
|
delegate_to: localhost
|