Files
pogoda_tg_bot_auto-deployment/README.md
T
2026-07-09 09:20:55 +05:00

3.3 KiB
Raw Blame History

🌤️ Weather Telegram Bot (with Ansible Deployment)

Бот для получения прогноза погоды, упакованный в Docker. В репозитории также находится Ansible-плейбук для автоматического развертывания на любом облачном сервере Ubuntu за 2 минуты.

🚀 Быстрый старт за 2 минуты

  1. Склонируйте репозиторий командой:

    git clone https://github.com/LeoR156/pogoda_tg_bot.git
    cd pogoda_tg_bot
    
  2. Получите токены и ключи:

    • Создайте бота(ов) и скопируйте токен(ы) у @BotFather в Telegram.
    • Получите бесплатный API ключ на сайте OpenWeatherMap.
    • Узнайте свой Telegram ID у официального бота @userinfobot (чтобы получать уведомления от бота как админ).
  3. Создайте файл инвентори: Создайте файл 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-контейнеры!)

  4. Настройте Playbook: В файле playbook.yml убедитесь, что в поле hosts: указана группа из вашего inventory.ini (в примере выше это tg_bot_3x).

  5. Запуск: Проверьте файл на ошибки командой:

    ansible-playbook playbook.yml --syntax-check
    

    В случае неудачи исправьте синтаксическую ошибку. Если всё хорошо, запускайте автоматическую установку командой:

    ansible-playbook playbook.yml -i inventory.ini
    

Готово! Через пару минут Ansible самостоятельно установит Docker, скачает образ бота с Docker Hub и запустит контейнеры с вашими переменными.