From 1ad46862cdd5b27852113869598740d02e037d5e Mon Sep 17 00:00:00 2001
From: Stephane Armanet <stephane.armanet@ess.eu>
Date: Wed, 26 Aug 2020 14:08:13 +0200
Subject: [PATCH] remplace tftp server by atftp to be able to use PCRE remap
 features

---
 defaults/main.yml           |  5 +++--
 files/tftp.remap            |  1 +
 tasks/install_component.yml | 22 ++++++++++++++++++++--
 templates/atftp.j2          | 15 +++++++++++++++
 4 files changed, 39 insertions(+), 4 deletions(-)
 create mode 100644 files/tftp.remap
 create mode 100644 templates/atftp.j2

diff --git a/defaults/main.yml b/defaults/main.yml
index e16235d..c272608 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -2,15 +2,16 @@
 
 # TFTP and PXE setup
 tftp_root: "/tftproot"
+tftp_remap: "/etc/tftp.remap"
 kickstart_root: "/kickstart"
 kickstart_ip: "{{ ansible_default_ipv4.address}}"
 kickstart_url: "http://{{ kickstart_ip }}/centos7"
 
 epel7_gpg_url: https://artifactory.esss.lu.se/artifactory/epel-mirror-cache/RPM-GPG-KEY-EPEL-7
 
-centos7_squashfs_url: https://artifactory.esss.lu.se/artifactory/list/centos-mirror/7.6.1810/os/x86_64/
+centos7_squashfs_url: https://artifactory.esss.lu.se/artifactory/list/centos-mirror/7.8.2003/os/x86_64/
 
-isolinux_kernel_url: https://artifactory.esss.lu.se/artifactory/list/centos-mirror/7.6.1810/os/x86_64/isolinux/
+isolinux_kernel_url: https://artifactory.esss.lu.se/artifactory/list/centos-mirror/7.8.2003/os/x86_64/isolinux/
 pxe_kernel_path: "{{ tftp_root }}/images/centos7-x86_64/"
 proxmox_deploy_user: "csi"
 
diff --git a/files/tftp.remap b/files/tftp.remap
new file mode 100644
index 0000000..7417ad3
--- /dev/null
+++ b/files/tftp.remap
@@ -0,0 +1 @@
+.*EFI/grubx64.efi.*  /EFI/grubx64.efi
diff --git a/tasks/install_component.yml b/tasks/install_component.yml
index a12a980..3349d61 100644
--- a/tasks/install_component.yml
+++ b/tasks/install_component.yml
@@ -10,9 +10,19 @@
     regex: '^SELINUX='
     line: 'SELINUX=permissive'
 
+- name: gather package list
+  package_facts:
+    manager: "auto"
+
+- name: remove tftp-hpa if installed
+  yum:
+    name: tftp-server
+    state: absent
+  when: "'tftp-server' in ansible_facts.packages"
+
 - name: install atftp server
   yum:
-    name: "tftp-server"
+    name: "atftp-server"
     state: present
   tags:
     - install
@@ -31,12 +41,20 @@
 
 - name: configure tftp
   template:
-    src: tftp.j2
+    src: atftp.j2
     dest: /etc/xinetd.d/tftp
     owner: root
     group: root
     mode: 0644
 
+- name: copy tftp remap file
+  copy:
+    src: tftp.remap
+    dest: "{{ tftp_remap }}"
+    owner: root
+    group: root
+    mode: 0755
+
 - name: start xinetd
   service:
     name: xinetd
diff --git a/templates/atftp.j2 b/templates/atftp.j2
new file mode 100644
index 0000000..6b36693
--- /dev/null
+++ b/templates/atftp.j2
@@ -0,0 +1,15 @@
+# {{ ansible_managed }}
+service tftp
+{
+        socket_type             = dgram
+        protocol                = udp
+        wait                    = yes
+        user                    = root
+        server                  = /usr/sbin/in.tftpd
+        server_args             = --user root --group root --pcre {{ tftp_remap }} -v {{ tftp_root }}
+        disable                 = no
+        per_source              = 11
+        cps                     = 100 2
+        flags                   = IPv4
+}
+
-- 
GitLab