Files
ansible/roles/xray-core/tasks/install.yml
T
2026-09-20 22:14:56 +00:00

48 lines
1.3 KiB
YAML

---
- 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
check_mode: false
- 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
owner: xray-core
group: xray-core
state: directory
mode: '0755'
- name: update xray-core
ansible.builtin.unarchive:
src: "{{ xray_asset_url }}"
dest: /opt/xray-core
remote_src: yes
owner: xray-core
group: xray-core
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: 0644