diff --git a/metal/roles/pxe-server/defaults/main.yml b/metal/roles/pxe-server/defaults/main.yml new file mode 100644 index 00000000..51f69130 --- /dev/null +++ b/metal/roles/pxe-server/defaults/main.yml @@ -0,0 +1,8 @@ +subnet: "192.168.1.0" +netmask: "255.255.255.0" +gateway: "192.168.1.1" +range_start: "192.168.1.11" +range_end: "192.168.1.99" +pxe_server: "192.168.1.21" +dns: "8.8.8.8" +network_device: "eno1" diff --git a/metal/roles/pxe-server/files/http/kickstart/config/00-00-00-00-00-00.ks.template b/metal/roles/pxe-server/files/http/kickstart/config/00-00-00-00-00-00.ks.template deleted file mode 100644 index 2e4e17d3..00000000 --- a/metal/roles/pxe-server/files/http/kickstart/config/00-00-00-00-00-00.ks.template +++ /dev/null @@ -1,2 +0,0 @@ -network --bootproto=static --device=$NETWORK_DEVICE --ip=$IP --gateway=$GATEWAY --nameserver=$DNS1 --nameserver=$DNS2 --netmask=$NETMASK --ipv6=auto --activate -network --hostname=$HOSTNAME diff --git a/metal/roles/pxe-server/files/tftp/tftpboot/grub.cfg b/metal/roles/pxe-server/files/tftp/tftpboot/grub.cfg deleted file mode 100644 index a4ebf632..00000000 --- a/metal/roles/pxe-server/files/tftp/tftpboot/grub.cfg +++ /dev/null @@ -1,5 +0,0 @@ -set timeout=5 -menuentry 'CentOS' { - linuxefi vmlinuz ip=dhcp inst.repo=http://192.168.1.21/CentOS ks=http://192.168.1.21/kickstart/centos8.ks - initrdefi initrd.img -} diff --git a/metal/roles/pxe-server/files/dhcp/dhcpd.conf b/metal/roles/pxe-server/templates/dhcp/dhcpd.conf.j2 similarity index 74% rename from metal/roles/pxe-server/files/dhcp/dhcpd.conf rename to metal/roles/pxe-server/templates/dhcp/dhcpd.conf.j2 index d0e83fd4..be406cbf 100644 --- a/metal/roles/pxe-server/files/dhcp/dhcpd.conf +++ b/metal/roles/pxe-server/templates/dhcp/dhcpd.conf.j2 @@ -5,13 +5,13 @@ option pxelinux.pathprefix code 210 = text; option pxelinux.reboottime code 211 = unsigned integer 32; option architecture-type code 93 = unsigned integer 16; -subnet $SUBNET netmask $NETMASK { - option routers $ROUTERS; - range $RANGE_START $RANGE_END; +subnet {{ subnet }} netmask {{ netmask }} { + option routers {{ routers }}; + range {{ range_start }} {{ range_end }}; class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; - next-server $NEXT_SERVER; + next-server {{ pxe_server }}; if option architecture-type = 00:07 { filename "grubx64.efi"; diff --git a/metal/roles/pxe-server/files/http/kickstart/centos8.ks.template b/metal/roles/pxe-server/templates/http/kickstart/centos8.ks.j2 similarity index 100% rename from metal/roles/pxe-server/files/http/kickstart/centos8.ks.template rename to metal/roles/pxe-server/templates/http/kickstart/centos8.ks.j2 diff --git a/metal/roles/pxe-server/templates/http/kickstart/config/00-00-00-00-00-00.ks.j2 b/metal/roles/pxe-server/templates/http/kickstart/config/00-00-00-00-00-00.ks.j2 new file mode 100644 index 00000000..c7c20427 --- /dev/null +++ b/metal/roles/pxe-server/templates/http/kickstart/config/00-00-00-00-00-00.ks.j2 @@ -0,0 +1,2 @@ +network --bootproto=static --device={{ network_device }} --ip={{ node_ip }} --gateway={{ gateway }} --nameserver={{ dns }} --netmask={{ netmask }} --ipv6=auto --activate +network --hostname={{ node_hostname }} diff --git a/metal/roles/pxe-server/templates/tftp/tftpboot/grub.cfg.j2 b/metal/roles/pxe-server/templates/tftp/tftpboot/grub.cfg.j2 new file mode 100644 index 00000000..ade1bbc6 --- /dev/null +++ b/metal/roles/pxe-server/templates/tftp/tftpboot/grub.cfg.j2 @@ -0,0 +1,5 @@ +set timeout=5 +menuentry 'CentOS' { + linuxefi vmlinuz ip=dhcp inst.repo=http://{{ pxe_server }}/CentOS ks=http://{{ pxe_server }}/kickstart/centos8.ks + initrdefi initrd.img +}