From c36b4f839c77cea66d957780f9a3a3bb3bb9d1f5 Mon Sep 17 00:00:00 2001 From: Leo <277007013+LeoR156@users.noreply.github.com> Date: Fri, 3 Jul 2026 19:06:42 +0500 Subject: [PATCH] Add ansible playbook --- .dockerignore | 7 +++++ .gitignore | 1 + Dockerfile | 16 ++++++++++++ playbook.yml | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 playbook.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7d80b91 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +bot_database.db +.git +.gitignore +__pycache__/ +venv/ +.env +Dockerfile diff --git a/.gitignore b/.gitignore index 03ed408..a36ccda 100644 --- a/.gitignore +++ b/.gitignore @@ -217,3 +217,4 @@ __marimo__/ # Streamlit .streamlit/secrets.toml bot_database.db +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6798419 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.10-slim + +# Устанавливаем рабочую директорию внутри контейнера +WORKDIR /app + +# Шаг 1: Копируем только файл с зависимостями +COPY requirements.txt . + +# Шаг 2: Устанавливаем библиотеки +RUN pip install --no-cache-dir -r requirements.txt + +# Шаг 3: Копируем весь остальной код бота +COPY . . + +# Указываем команду для запуска бота +CMD ["python", "tg.py"] diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..ecb67f8 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,72 @@ +--- +- name: Запуск 3 экземпляров ботов погоды + hosts: tg_bot_3x + become: true + + tasks: + - name: "Установка пакетов" + apt: + name: + - ca-certificates + - curl + state: present + update_cache: true + + - name: Скачивание официального GPG-ключа Docker + get_url: + url: https://download.docker.com/linux/ubuntu/gpg + dest: /etc/apt/keyrings/docker.asc + mode: 'a+r' + + - name: Добавление репозитория Docker-а + apt_repository: + repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_facts['distribution_release'] }} stable" + state: present + filename: docker + + - name: Установка пакетов + apt: + name: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + - nginx + - htop + - git + - python3-docker + state: present + update_cache: true + + - name: Проверка запуска служб + systemd: + name: "{{ item }}" + state: started + enabled: true + loop: + - docker + - nginx + +# - name: Установка библиотеки docker для python +# pip: +# name: docker +# state: present + + - name: Скачивание образа из докер хаба + community.docker.docker_image: + name: leor156/pogoda-api-tgbot + tag: v2 + source: pull + + - name: Запускаем Docker контейнеры с ботами + community.docker.docker_container: + name: weather_bot + image: leor156/pogoda-api-tgbot:v2 + state: started + recreate: true + restart_policy: always + env: + TG_TOKEN: "{{ tg_token }}" + WEATHER_API_KEY: "{{ api_pogoda }}" + ADMIN_ID: "{{ admin | string }}"