--- - name: Ensure endlessh group exists ansible.builtin.group: name: endlessh system: true - name: Ensure endlessh user exists ansible.builtin.user: name: endlessh group: endlessh system: true shell: /usr/sbin/nologin create_home: false - name: Ensure Endlessh repo is cloned and updated ansible.builtin.git: repo: "{{ endlessh_repo }}" dest: "{{ endlessh_clone_path }}" version: master update: yes register: git_result - name: Build Endlessh if repo was updated ansible.builtin.command: make args: chdir: "{{ endlessh_clone_path }}" when: git_result.after != git_result.before register: make_result # no changed_when needed; we'll rely on the copy step to track changes - name: Copy Endlessh binary to /usr/local/bin if updated ansible.builtin.copy: src: "{{ endlessh_clone_path }}/endlessh" dest: /usr/local/bin/endlessh mode: "0755" remote_src: true when: git_result.after != git_result.before register: copy_result - name: Create Endlessh config directory ansible.builtin.file: path: /etc/endlessh state: directory mode: "0755" - name: Deploy Endlessh config ansible.builtin.template: src: endlessh_config.j2 dest: /etc/endlessh/config mode: "0644" - name: Deploy Endlessh systemd service ansible.builtin.template: src: endlessh.service.j2 dest: /etc/systemd/system/endlessh.service mode: "0644" - name: Reload systemd daemon ansible.builtin.systemd: daemon_reload: true - name: Restart Endlessh if binary updated ansible.builtin.systemd: name: endlessh enabled: true state: restarted when: copy_result is changed