--- - name: install unzip ansible.builtin.package: name: unzip state: present - name: get latest xray-core release info ansible.builtin.uri: url: https://api.github.com/repos/XTLS/Xray-core/releases/latest return_content: yes register: xray_release run_once: true - name: set current xray-core version ansible.builtin.set_fact: xray_version: "{{ xray_release.json.tag_name }}" xray_asset_url: "{{ xray_release.json.assets | selectattr('name', 'equalto', 'Xray-linux-64.zip') | map(attribute='browser_download_url') | first }}" - name: check xray-core installed version ansible.builtin.command: /opt/xray-core/xray version register: xray_current_version changed_when: false failed_when: false - name: ensure xray-core directory exists ansible.builtin.file: path: /opt/xray-core state: directory mode: '0755' - name: update xray-core ansible.builtin.unarchive: src: "{{ xray_asset_url }}" dest: /opt/xray-core remote_src: yes when: xray_version not in (xray_current_version.stdout | default('')) - name: deploy xray-core systemd service unit ansible.builtin.copy: src: xray-core.service dest: /etc/systemd/system/xray-core.service mode: 755