This commit is contained in:
Leo
2026-07-09 09:20:55 +05:00
parent c36b4f839c
commit 7bc2b84294
4 changed files with 148 additions and 44 deletions
+47 -4
View File
@@ -1,5 +1,48 @@
## pogoda_tg_bot
### Телеграмм бот, который по названию города отправляет текущую погоду в нём.
___
# 🌤️ Weather Telegram Bot (with Ansible Deployment)
## **Инструкция по установке выйдет позже**
Бот для получения прогноза погоды, упакованный в Docker. В репозитории также находится Ansible-плейбук для автоматического развертывания на любом облачном сервере Ubuntu за 2 минуты.
## 🚀 Быстрый старт за 2 минуты
1. **Склонируйте репозиторий** командой:
```bash
git clone https://github.com/LeoR156/pogoda_tg_bot.git
cd pogoda_tg_bot
```
2. **Получите токены и ключи**:
- Создайте бота(ов) и скопируйте токен(ы) у [@BotFather](https://t.me/BotFather) в Telegram.
- Получите бесплатный API ключ на сайте OpenWeatherMap.
- Узнайте свой Telegram ID у официального бота [@userinfobot](https://t.me/userinfobot) (чтобы получать уведомления от бота как админ).
3. **Создайте файл инвентори**:
Создайте файл `inventory.ini` и добавьте туда серверы для установки. Вы можете задать общие переменные `admin` (ваш ID) и `api_pogoda` (ключ погоды) для всех серверов, чтобы не дублировать их. А вот токен телеграм-бота `tg_token` **должен быть обязательно разным для каждого сервера/бота**, иначе боты будут конфликтовать за входящие сообщения.
*Пример синтаксиса `inventory.ini`:*
```ini
[tg_bot_3x]
# Указываем IP серверов и уникальные токены ботов для каждого сервера
server1 ansible_host=222.222.222.222 tg_token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
server2 ansible_host=111.111.111.111 tg_token="987654:XYZ-ABC1234ghIkl-zyx57W2v1u123ew11"
[tg_bot_3x:vars]
# Общие переменные для всех хостов в этой группе
api_pogoda="ваш_ключ_openweathermap"
admin=123456789
```
*(Примечание: файл `.env` вам не нужен, так как Ansible сам пробросит переменные из inventory прямо в Docker-контейнеры!)*
4. **Настройте Playbook**:
В файле `playbook.yml` убедитесь, что в поле `hosts:` указана группа из вашего `inventory.ini` (в примере выше это `tg_bot_3x`).
5. **Запуск**:
Проверьте файл на ошибки командой:
```bash
ansible-playbook playbook.yml --syntax-check
```
В случае неудачи исправьте синтаксическую ошибку. Если всё хорошо, запускайте автоматическую установку командой:
```bash
ansible-playbook playbook.yml -i inventory.ini
```
Готово! Через пару минут Ansible самостоятельно установит Docker, скачает образ бота с Docker Hub и запустит контейнеры с вашими переменными.