--- - name: check if iso exists stat: path: "{{ playbook_dir }}/debian-11.5.0-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 apt: name: - xorriso - unzip - genisoimage update_cache: yes delegate_to: localhost - 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-11.5.0-amd64-netinst.iso" dest: "/opt/ansiblepackages/debianunattended/debian-11.5.0-amd64-netinst.iso" delegate_to: localhost - 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-11.5.0-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/authorized_keys 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-11.5.0-amd64-netinst-unattended-{{ inventory_hostname }}.iso /opt/ansiblepackages/debianunattended/{{ inventory_hostname }}/isofiles" delegate_to: localhost