Move preseed generation to a separate role
[noc.git] / ansible / roles / preseed / tasks / main.yml
1 - block:
2     - name: Make a temporary directory
3       command: mktemp -d
4       register: tmpdir
5
6     - set_fact:
7         tmpdir: "{{ tmpdir.stdout }}"
8         initramfs: "{{ preseed_path | mandatory }}/{{ hostname }}-{{ distro }}-{{ distcodename }}.initrd.gz"
9
10     - name: Copy initramfs into position
11       copy:
12         remote_src: yes
13         src: "{{ debian_installer_path | mandatory }}/{{ distro }}-{{ distcodename }}/{{ install.arch | default('amd64') }}/initrd.gz"
14         dest: "{{ initramfs }}"
15
16     - name: Generate preseed file
17       template:
18         src: "preseed_{{ distro }}-{{ distcodename }}.cfg.j2"
19         dest: "{{ tmpdir }}/preseed.cfg"
20
21     - name: Generate authorized_keys file
22       authorized_key:
23         user: root
24         path: "{{ tmpdir }}/authorized_keys"
25         key: "{{ ssh_keys | join('\n') }}"
26
27     - name: Inject files into initramfs
28       shell: cpio -H newc -o | gzip -9 >> '{{ initramfs }}'
29       args:
30         chdir: "{{ tmpdir }}"
31         stdin: |
32           preseed.cfg
33           authorized_keys
34
35   always:
36     - name: Delete temporary directory
37       file:
38         path: "{{ tmpdir }}"
39         state: absent