49 lines
3.3 KiB
Markdown
49 lines
3.3 KiB
Markdown
# 🌤️ 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 и запустит контейнеры с вашими переменными.
|