--- - name: Install packages ansible.builtin.package: name: tftp-server state: installed when: ansible_os_family != "OpenBSD" - name: Create group tftpd ansible.builtin.group: name: tftpd system: true when: ansible_os_family != "OpenBSD" - name: Create user tftpd ansible.builtin.user: name: tftpd comment: Service TFTP createhome: false group: tftpd home: /var/empty shell: /sbin/nologin system: true when: ansible_os_family != "OpenBSD" - name: Set SELinux context for data directory community.general.sefcontext: path: "/export/tftpboot(/.*)?" setype: tftpdir_rw_t when: - ansible_system == "Linux" - ansible_selinux.status != "disabled" - name: Create data directory ansible.builtin.file: path: /export/tftpboot state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Link data directory ansible.builtin.file: dest: /srv/tftpboot src: /export/tftpboot state: link owner: root group: "{{ ansible_wheel }}" follow: false - name: Create drop-in directory for service ansible.builtin.file: path: /etc/systemd/system/tftp.service.d state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" when: ansible_service_mgr == "systemd" - name: Create service add-on config ansible.builtin.copy: dest: /etc/systemd/system/tftp.service.d/local.conf content: | [Service] ExecStart= ExecStart=/usr/sbin/in.tftpd -s /srv/tftpboot -u tftpd -c -v mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart tftpd when: ansible_service_mgr == "systemd" - name: Enable service ansible.builtin.systemd: name: tftp.socket enabled: true state: started when: ansible_service_mgr == "systemd" - name: Enable service ansible.builtin.service: name: tftpd enabled: true state: started arguments: "-v /srv/tftpboot" when: ansible_service_mgr != "systemd"