diff options
Diffstat (limited to 'roles/pxe_server/tasks')
-rw-r--r-- | roles/pxe_server/tasks/extract_iso.yml | 16 | ||||
-rw-r--r-- | roles/pxe_server/tasks/main.yml | 39 |
2 files changed, 55 insertions, 0 deletions
diff --git a/roles/pxe_server/tasks/extract_iso.yml b/roles/pxe_server/tasks/extract_iso.yml new file mode 100644 index 0000000..754f9ec --- /dev/null +++ b/roles/pxe_server/tasks/extract_iso.yml @@ -0,0 +1,16 @@ +- name: create directories + file: + path: '{{ pxe_root }}/{{ item.name }}/{{ item.version }}/{{ item.arch }}' + state: directory + recurse: yes + +- name: download iso + get_url: + url: '{{ item.url }}' + checksum: sha256:{{ item.sha256 }} + dest: '{{ pxe_root }}/{{ item.name }}/{{ item.version }}/{{ item.arch }}/{{ item.name }}-{{ item.version }}-{{ item.arch }}.iso' + +- name: extract iso with bsdtar + command: >- + bsdtar -C '{{ pxe_root }}/{{ item.name }}/{{ item.version }}/{{ item.arch }}' + -xf '{{ pxe_root }}/{{ item.name }}/{{ item.version }}/{{ item.arch }}/{{ item.name }}-{{ item.version }}-{{ item.arch }}.iso' diff --git a/roles/pxe_server/tasks/main.yml b/roles/pxe_server/tasks/main.yml new file mode 100644 index 0000000..9bd7b30 --- /dev/null +++ b/roles/pxe_server/tasks/main.yml @@ -0,0 +1,39 @@ +- name: prepare boot images + include_tasks: extract_iso.yml + loop: '{{ pxe_images }}' + +- name: create grub directories + file: + path: '{{ pxe_root }}/{{ item }}' + state: directory + loop: + - '{{ pxe_grub_prefix }}' + - kickstart + +- name: generate menuentries + template: + src: grub/menuentry-{{ image.os }}.cfg.j2 + dest: '{{ pxe_root }}/{{ pxe_grub_prefix }}/{{ image.name }}-{{ image.version }}-{{ image.arch }}.cfg' + loop: '{{ pxe_images }}' + loop_control: + loop_var: image + +- name: generate kickstart files + template: + src: kickstart/{{ item }}.j2 + dest: '{{ pxe_root }}/kickstart/{{ item }}' + loop: '{{ pxe_images | selectattr("kickstart", "defined") | map(attribute="kickstart") | flatten | map(attribute="name") | unique }}' + +- name: generate kickstart menuentries + template: + src: grub/menuentry-{{ image.os }}.cfg.j2 + dest: '{{ pxe_root }}/{{ pxe_grub_prefix }}/{{ image.name }}-{{ image.version }}-{{ image.arch }}-{{ kickstart.name | splitext | first }}.cfg' + vars: + image: '{{ item.0 }}' + kickstart: '{{ item.1 }}' + loop: '{{ pxe_images | subelements("kickstart", { "skip_missing": true }) }}' + +- name: generate grub config + template: + src: grub/grub.cfg.j2 + dest: '{{ pxe_root }}/{{ pxe_grub_prefix }}/grub.cfg' |