3.3 KiB
🌤️ Weather Telegram Bot (with Ansible Deployment)
Бот для получения прогноза погоды, упакованный в Docker. В репозитории также находится Ansible-плейбук для автоматического развертывания на любом облачном сервере Ubuntu за 2 минуты.
🚀 Быстрый старт за 2 минуты
-
Склонируйте репозиторий командой:
git clone https://github.com/LeoR156/pogoda_tg_bot.git cd pogoda_tg_bot -
Получите токены и ключи:
- Создайте бота(ов) и скопируйте токен(ы) у @BotFather в Telegram.
- Получите бесплатный API ключ на сайте OpenWeatherMap.
- Узнайте свой Telegram ID у официального бота @userinfobot (чтобы получать уведомления от бота как админ).
-
Создайте файл инвентори: Создайте файл
inventory.iniи добавьте туда серверы для установки. Вы можете задать общие переменныеadmin(ваш ID) иapi_pogoda(ключ погоды) для всех серверов, чтобы не дублировать их. А вот токен телеграм-ботаtg_tokenдолжен быть обязательно разным для каждого сервера/бота, иначе боты будут конфликтовать за входящие сообщения.Пример синтаксиса
inventory.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-контейнеры!) -
Настройте Playbook: В файле
playbook.ymlубедитесь, что в полеhosts:указана группа из вашегоinventory.ini(в примере выше этоtg_bot_3x). -
Запуск: Проверьте файл на ошибки командой:
ansible-playbook playbook.yml --syntax-checkВ случае неудачи исправьте синтаксическую ошибку. Если всё хорошо, запускайте автоматическую установку командой:
ansible-playbook playbook.yml -i inventory.ini
Готово! Через пару минут Ansible самостоятельно установит Docker, скачает образ бота с Docker Hub и запустит контейнеры с вашими переменными.