This commit is contained in:
Gabenov Stanislav
2026-02-13 10:31:46 +03:00
parent a6d2623802
commit 3054f5889f
6 changed files with 171 additions and 74 deletions

View File

@@ -1,63 +1,90 @@
- name: Print clipboard string
---
- name: Ensure config directories exist
become: true
file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: '0755'
loop:
- /etc/xray
- /etc/sing-box
- name: Normalize generated values
set_fact:
uuid: "{{ xray_uuid.stdout }}"
pbk: "{{ x25519_pbk.stdout }}"
sid: "{{ short_id.stdout }}"
no_log: true
- name: Build configs
set_fact:
vless_url: "vless://{{ uuid }}@{{ domain }}:443?type=tcp&security=reality&pbk={{ pbk }}&fp=chrome&sni={{ domain }}&sid={{ sid }}&spx=%2F&flow=xtls-rprx-vision"
xray_outbound:
tag: default
protocol: vless
settings:
vnext:
- address: "{{ domain }}"
port: 443
users:
- id: "{{ uuid }}"
encryption: none
flow: xtls-rprx-vision
streamSettings:
network: tcp
security: reality
realitySettings:
serverName: "{{ domain }}"
fingerprint: chrome
publicKey: "{{ pbk }}"
shortId: "{{ sid }}"
spiderX: ""
singbox_outbound:
type: vless
server: "{{ domain }}"
server_port: 443
uuid: "{{ uuid }}"
flow: xtls-rprx-vision
tls:
enabled: true
insecure: false
server_name: "{{ domain }}"
utls:
enabled: true
fingerprint: chrome
reality:
enabled: true
public_key: "{{ pbk }}"
short_id: "{{ sid }}"
no_log: true
- name: Write XRay outbound config
become: true
copy:
dest: /etc/xray/outbound.json
content: "{{ xray_outbound | to_nice_json }}"
owner: root
group: root
mode: '0600'
- name: Write Sing-box outbound config
become: true
copy:
dest: /etc/sing-box/outbound.json
content: "{{ singbox_outbound | to_nice_json }}"
owner: root
group: root
mode: '0600'
- name: Print connection URL
debug:
msg: "vless://{{ xray_uuid.stdout }}@{{ vless.domain }}:443?type=tcp&security=reality&pbk={{ x25519_pbk.stdout }}&fp=chrome&sni={{ vless.domain }}&sid={{ short_id.stdout }}&spx=%2F&flow=xtls-rprx-vision"
- name: XRay outbound config
debug:
msg: |
{
"tag": "default",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "{{ vless.domain }}",
"port": 443,
"users": [
{
"id": "{{ xray_uuid.stdout }}",
"encryption": "none",
"flow": "xtls-rprx-vision"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "{{ vless.domain }}",
"fingerprint": "chrome",
"publicKey": "{{ x25519_pbk.stdout }}",
"shortId": "{{ short_id.stdout }}",
"spiderX": ""
}
}
}
- name: Sing-box outbound config
debug:
msg: |
{
"type": "vless",
"server": "{{ vless.domain }}",
"server_port": 443,
"uuid": "{{ xray_uuid.stdout }}",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"insecure": false,
"server_name": "{{ vless.domain }}",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "{{ x25519_pbk.stdout }}",
"short_id": "{{ short_id.stdout }}"
}
}
}
- name: Print PBK, SID and UUID to connect to server.
debug:
msg: "UUID: {{ xray_uuid.stdout }}, SID: {{ short_id.stdout }}, PBK: {{ x25519_pbk.stdout }}"
msg: "{{ vless_url }}"