- name: Gather network facts ansible.builtin.setup: gather_subset: - network - name: Create build directory file: path: "{{ item }}" state: directory loop: - "{{ role_path }}/build" - "{{ role_path }}/build/images" - "{{ role_path }}/build/mnt" - name: Download ISO get_url: url: "{{ iso_url }}" dest: "{{ role_path }}/build/images/centos8.iso" delegate_to: localhost - name: Mount the ISO mount: src: "{{ role_path }}/build/images/centos8.iso" path: "{{ role_path }}/build/mnt" fstype: iso9660 opts: loop,ro state: mounted become: yes - name: Copy configs copy: src: "{{ role_path }}/templates/" dest: "{{ role_path }}/build" - name: Render DHCP config template: src: dhcp/dhcpd.conf.j2 dest: "{{ role_path }}/build/dhcp/dhcpd.conf" - name: Render GRUB config template: src: tftp/tftpboot/grub.cfg.j2 dest: "{{ role_path }}/build/tftp/tftpboot/grub.cfg" - name: Render shared kickstart config template: src: http/kickstart/centos8.ks.j2 dest: "{{ role_path }}/build/http/kickstart/centos8.ks" - name: Render seperate network kickstart config for each node template: src: http/kickstart/network/network.ks.j2 dest: "{{ role_path }}/build/http/kickstart/network/{{ hostvars[item]['mac'] }}.ks" loop: "{{ groups['metal'] }}" - name: Start PXE server docker_compose: project_src: "{{ role_path }}/build" state: present restarted: yes build: yes recreate: always