X-Git-Url: https://git.realraum.at/?p=noc.git;a=blobdiff_plain;f=ansible%2Froles%2Fpreseed%2Ftasks%2Fmain.yml;h=fbe25a86f7824cbedf29e09e4c7bd355bbe64d8d;hp=f77540ad6ae5231c068a35a61edc662612d7ac17;hb=47ef375e1d90888299fef2a60c5cd12d3c388a72;hpb=6b3a9335bde11948e7538930d57fd2c2853f6583 diff --git a/ansible/roles/preseed/tasks/main.yml b/ansible/roles/preseed/tasks/main.yml index f77540a..fbe25a8 100644 --- a/ansible/roles/preseed/tasks/main.yml +++ b/ansible/roles/preseed/tasks/main.yml @@ -1,39 +1,47 @@ -- block: - - name: Make a temporary directory - command: mktemp -d - register: tmpdir +--- +- name: Copy initramfs into position + copy: + remote_src: yes + src: "{{ debian_installer_path | mandatory }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[hostname].install_cooked.arch | default('amd64') }}/initrd.gz" + dest: "{{ preseed_tmpdir }}/initrd.preseed.gz" - - set_fact: - tmpdir: "{{ tmpdir.stdout }}" - initramfs: "{{ preseed_path | mandatory }}/{{ hostname }}-{{ distro }}-{{ distcodename }}.initrd.gz" +- name: Generate preseed file + template: + src: "preseed_{{ install_distro }}-{{ install_codename }}.cfg.j2" + dest: "{{ preseed_tmpdir }}/preseed.cfg" - - name: Copy initramfs into position - copy: - remote_src: yes - src: "{{ debian_installer_path | mandatory }}/{{ distro }}-{{ distcodename }}/{{ install.arch | default('amd64') }}/initrd.gz" - dest: "{{ initramfs }}" +- name: Generate authorized_keys file + authorized_key: + user: root + manage_dir: no + path: "{{ preseed_tmpdir }}/authorized_keys" + key: "{{ ssh_users_root | user_ssh_keys(users) | join('\n') }}" - - name: Generate preseed file - template: - src: "preseed_{{ distro }}-{{ distcodename }}.cfg.j2" - dest: "{{ tmpdir }}/preseed.cfg" +- name: force net interface name policy + when: preseed_force_net_ifnames_policy is defined + block: + - name: prepare directories to force network interface name policy + file: + path: "{{ preseed_tmpdir }}/etc/systemd/network" + state: directory - - name: Generate authorized_keys file - authorized_key: - user: root - path: "{{ tmpdir }}/authorized_keys" - key: "{{ ssh_keys | join('\n') }}" + - name: install link unit to force network interface name policy + copy: + dest: "{{ preseed_tmpdir }}/etc/systemd/network/90-namepolicy.link" + content: | + [Link] + NamePolicy={{ preseed_force_net_ifnames_policy }} - - name: Inject files into initramfs - shell: cpio -H newc -o | gzip -9 >> '{{ initramfs }}' - args: - chdir: "{{ tmpdir }}" - stdin: | - preseed.cfg - authorized_keys - - always: - - name: Delete temporary directory - file: - path: "{{ tmpdir }}" - state: absent +- name: Inject files into initramfs + shell: cpio -H newc -o | gzip -9 >> 'initrd.preseed.gz' + args: + chdir: "{{ preseed_tmpdir }}" + stdin: | + preseed.cfg + authorized_keys + etc/ + etc/systemd/ + etc/systemd/network/ + etc/systemd/network/90-namepolicy.link + tags: + - skip_ansible_lint