From ca14120c0e86b46105ccafd735405fab51b4f6d4 Mon Sep 17 00:00:00 2001 From: B4D_US3R Date: Thu, 4 Jun 2026 11:55:23 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=20=D1=81=20=D0=B0=D0=BD=D1=81?= =?UTF-8?q?=D0=B8=D0=B1=D0=BB=D0=B5=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20telemt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 27 +++++++++++++++++++++++++++ ansible.cfg | 6 ++++++ playbook.yml | 7 +++++++ roles/install/defaults/main.yml | 2 ++ roles/install/tasks/download.yml | 7 +++++++ roles/install/tasks/install.yml | 15 +++++++++++++++ roles/install/tasks/main.yml | 5 +++++ roles/uninstall/tasks/download.yml | 7 +++++++ roles/uninstall/tasks/main.yml | 5 +++++ roles/uninstall/tasks/uninstall.yml | 9 +++++++++ 10 files changed, 90 insertions(+) create mode 100644 README.md create mode 100644 ansible.cfg create mode 100644 playbook.yml create mode 100644 roles/install/defaults/main.yml create mode 100644 roles/install/tasks/download.yml create mode 100644 roles/install/tasks/install.yml create mode 100644 roles/install/tasks/main.yml create mode 100644 roles/uninstall/tasks/download.yml create mode 100644 roles/uninstall/tasks/main.yml create mode 100644 roles/uninstall/tasks/uninstall.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..58d2213 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Ansible Telemt + +Так как блокировки в РФ достигли неимоверных масштабов, когда половина интернета не работает нормально, даже я, человек, которого считают "зетником" (кекв), подустал от всего этого. Так как ситуация такая, что принцип работы ТСПУ не известен, а в тележеньку выходить хочется, я набросал Ansible скрипт, который ставит Telemt. Да, кривой, косой, но тем не менее он позволяет раскатывать Telemt без входа на сервер + +## Как использовать? + +На компьютере должен быть установлен Ansible и Ansible Community. После установки необходимо выполнить команду: +``` +ansible-playbook -i "server_ip," -u root --key-file ~/amnezia playbook.yml -t install +``` +Где `server_ip` - IP-адрес сервера + +По умолчанию Telemt будет прослушивать 443 порт, а в качестве TLS будет указан `max.ru`. Эти настроки можно кастомизировать через ключи `-e`: +``` +ansible-playbook -i "server_ip," -u root --key-file ~/amnezia playbook.yml -t install -e port=8443 -e tls_domain=vk.com +``` +- `port` - меняет порт, на котором Telemt будет прослушивать соединение +- `tls_domain` - меняет домен для маскировки + +## Как удалить? + +Для удаления Telemt необходимо использовать следующую команду: +``` +ansible-playbook -i "server_ip," -u root --key-file ~/amnezia playbook.yml -t uninstall +``` + +Боже, рунет храни... diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..3f9d146 --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,6 @@ +[defaults] +host_key_checking = False +retry_files_save_path = /tmp +roles = ./roles +gathering = explicit +remote_tmp = /tmp/${USER}/ansible diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..40dd69d --- /dev/null +++ b/playbook.yml @@ -0,0 +1,7 @@ +--- +- name: основной плейбук для управления telemt + hosts: all + + roles: + - { role: roles/install, tags: install } + - { role: roles/uninstall, tags: uninstall } diff --git a/roles/install/defaults/main.yml b/roles/install/defaults/main.yml new file mode 100644 index 0000000..8d95738 --- /dev/null +++ b/roles/install/defaults/main.yml @@ -0,0 +1,2 @@ +tls_domain: max.ru +port: 443 diff --git a/roles/install/tasks/download.yml b/roles/install/tasks/download.yml new file mode 100644 index 0000000..db7e99b --- /dev/null +++ b/roles/install/tasks/download.yml @@ -0,0 +1,7 @@ +--- +- name: get install.sh + get_url: + url: https://raw.githubusercontent.com/telemt/telemt/main/install.sh + dest: /tmp/install.sh + owner: root + mode: 755 diff --git a/roles/install/tasks/install.yml b/roles/install/tasks/install.yml new file mode 100644 index 0000000..ccf57bd --- /dev/null +++ b/roles/install/tasks/install.yml @@ -0,0 +1,15 @@ +--- +- name: gen hex + set_fact: + random_hex: "{{ query('community.general.random_string', upper=false, lower=false, override_special=hex_chars, numbers=false, length=32) }}" + vars: + hex_chars: "0123456789ABCDEF" + +- name: run install script + shell: + cmd: /tmp/install.sh -d {{ tls_domain }} -s {{ random_hex[0] }} -p {{ port }} -l 2 + register: install_result + +- name: output msg + debug: + msg: "{{ install_result.stdout.split('\n') }}" diff --git a/roles/install/tasks/main.yml b/roles/install/tasks/main.yml new file mode 100644 index 0000000..62ac5a4 --- /dev/null +++ b/roles/install/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: загрузка установочного скрипта + include_tasks: download.yml +- name: запуск установочного скрипта + include_tasks: install.yml diff --git a/roles/uninstall/tasks/download.yml b/roles/uninstall/tasks/download.yml new file mode 100644 index 0000000..db7e99b --- /dev/null +++ b/roles/uninstall/tasks/download.yml @@ -0,0 +1,7 @@ +--- +- name: get install.sh + get_url: + url: https://raw.githubusercontent.com/telemt/telemt/main/install.sh + dest: /tmp/install.sh + owner: root + mode: 755 diff --git a/roles/uninstall/tasks/main.yml b/roles/uninstall/tasks/main.yml new file mode 100644 index 0000000..a1ea12d --- /dev/null +++ b/roles/uninstall/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: загрузка установочного скрипта + include_tasks: download.yml +- name: удаление telemt + include_tasks: uninstall.yml diff --git a/roles/uninstall/tasks/uninstall.yml b/roles/uninstall/tasks/uninstall.yml new file mode 100644 index 0000000..fc61295 --- /dev/null +++ b/roles/uninstall/tasks/uninstall.yml @@ -0,0 +1,9 @@ +--- +- name: удаление telemt + shell: + cmd: /tmp/install.sh purge -l 2 + register: uninstall_result + +- name: вывод сообщения + debug: + msg: "{{uninstall_result.stdout.split('\n')}}"