Add CI
This commit is contained in:
@@ -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 и запустит контейнеры с вашими переменными.
|
||||
|
||||
Reference in New Issue
Block a user