43 lines
1.2 KiB
YAML
43 lines
1.2 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
|
|
|
|
- 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
|