Files
Nuc_AWX/playbooks/statistica.yml
T

63 lines
2.2 KiB
YAML

---
- name: Update AdGuard VPN exclusions
hosts: your_nuc
gather_facts: no
vars:
exclusions_url: "https://raw.githubusercontent.com/lib4u/amnezia-tunneling-ru/main/amnezia.json"
telegram_token: "8820292312:AAECFO1AEWOJTh30zNuhyjC5C81o_qJHQcM"
telegram_chat_id: "407968638"
tasks:
- name: Download current exclusion list
ansible.builtin.uri:
url: "{{ exclusions_url }}"
return_content: yes
register: exclusions_raw
- name: Extract domains from JSON (amnezia.json format)
ansible.builtin.set_fact:
domains: "{{ exclusions_raw.content | from_json | json_query('domains') }}"
when: exclusions_raw.content | from_json | type_debug == 'dict'
ignore_errors: yes
- name: Extract domains from plain text (fallback)
ansible.builtin.set_fact:
domains: "{{ exclusions_raw.content | split('\n') | reject('match', '^#') | reject('match', '^$') | list }}"
when: domains is not defined
- name: Count domains
ansible.builtin.debug:
msg: "Found {{ domains | length }} domains to exclude"
- name: Clear existing exclusions
ansible.builtin.command:
cmd: adguardvpn-cli site-exclusions clear
changed_when: true
- name: Set exclusion mode to GENERAL
ansible.builtin.command:
cmd: adguardvpn-cli site-exclusions mode general
changed_when: true
- name: Add each domain as exclusion
ansible.builtin.command:
cmd: "adguardvpn-cli site-exclusions add {{ item }}"
loop: "{{ domains }}"
when: domains | length > 0
loop_control:
pause: 0.1
changed_when: true
- name: Restart VPN to apply changes
ansible.builtin.command:
cmd: "adguardvpn-cli disconnect && adguardvpn-cli connect"
changed_when: true
- name: Send Telegram notification
community.general.telegram:
token: "{{ telegram_token }}"
api_args:
chat_id: "{{ telegram_chat_id }}"
text: "✅ Список исключений обновлён. Добавлено {{ domains | length }} доменов."
use_proxy: no # явно отключаем прокси
delegate_to: localhost
when: telegram_token is defined and telegram_chat_id is defined