--- - name: Check if mcrcon is already installed ansible.builtin.stat: path: "{{ minecraft_tools_dir }}/mcrcon" register: mcrcon_installed - name: Download mcrcon ansible.builtin.get_url: url: "{{ mcrcon_url }}" dest: "{{ minecraft_tools_dir }}/mcrcon.tar.gz" owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" mode: '0644' when: not mcrcon_installed.stat.exists - name: Extract mcrcon ansible.builtin.unarchive: src: "{{ minecraft_tools_dir }}/mcrcon.tar.gz" dest: "{{ minecraft_tools_dir }}" owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" remote_src: yes creates: "{{ minecraft_tools_dir }}/mcrcon" when: not mcrcon_installed.stat.exists - name: Make mcrcon executable ansible.builtin.file: path: "{{ minecraft_tools_dir }}/mcrcon" mode: '0755' owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" - name: Create mcrcon wrapper script ansible.builtin.copy: content: | #!/bin/bash {{ minecraft_tools_dir }}/mcrcon -H localhost -P {{ rcon_port }} -p "{{ rcon_password }}" "$@" dest: "{{ minecraft_base_dir }}/scripts/rcon.sh" owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" mode: '0755' - name: Clean up mcrcon archive ansible.builtin.file: path: "{{ minecraft_tools_dir }}/mcrcon.tar.gz" state: absent