1
0

Перенес запуск скриптов деплоя в общий файл

This commit is contained in:
Anton Vakhrushev 2024-05-25 18:09:10 +03:00
parent 6b714a8486
commit ea43f571ae
Signed by: av
GPG Key ID: 581F7473F7A21FA2
5 changed files with 64 additions and 49 deletions

19
app/gitea/deploy.py Normal file
View File

@ -0,0 +1,19 @@
from fabric import Connection
import os
import shlex
def deploy(context, app_name, ssh_host):
docker_compose = os.path.join(os.path.dirname(__file__), "docker-compose.yml")
print("Deploy app from", docker_compose)
print("Start setup remote host", ssh_host)
with Connection(ssh_host) as c:
c.put(
local=docker_compose,
remote=f"/home/{app_name}/docker-compose.yml",
)
c.run("cp .env .env.prod")
c.run("mkdir -p data")
c.run(
f"docker-compose --project-name {shlex.quote(app_name)} --env-file=.env.prod up --detach --remove-orphans"
)

View File

@ -1,23 +0,0 @@
from fabric import Connection
from invoke import task
import shlex
# Run task with `invoke deploy`
APP_NAME = "gitea"
SSH_HOST = f"{APP_NAME}@158.160.115.150"
@task
def deploy(c):
print("Ready to setup remote host")
with Connection(SSH_HOST) as c:
c.put(
local="docker-compose.yml",
remote=f"/home/{APP_NAME}/docker-compose.yml",
)
c.run("cp .env .env.prod")
c.run("mkdir -p data")
c.run(
f"docker-compose --project-name {shlex.quote(APP_NAME)} --env-file=.env.prod up --detach --remove-orphans"
)

27
app/tasks.py Normal file
View File

@ -0,0 +1,27 @@
from invoke import task
SERVER_HOST_FILE = "../ansible/hosts_prod"
DOKER_REGISTRY = "cr.yandex/crplfk0168i4o8kd7ade"
@task(name="deploy:gitea")
def deploy_gitea(context):
from gitea.deploy import deploy
deploy(context, "gitea", ssh_host("gitea"))
@task(name="deploy:wiki")
def deploy_wiki(context):
from wiki.deploy import deploy
deploy(context, "wiki", ssh_host("wiki"))
def read_host():
with open("../ansible/hosts_prod") as f:
return f.read().strip()
def ssh_host(app_name):
return f"{app_name}@{read_host()}"

18
app/wiki/deploy.py Normal file
View File

@ -0,0 +1,18 @@
from fabric import Connection
import os
import shlex
def deploy(context, app_name, ssh_host):
docker_compose = os.path.join(os.path.dirname(__file__), "docker-compose.yml")
print("Deploy app from", docker_compose)
print("Start setup remote host", ssh_host)
with Connection(ssh_host) as c:
c.put(
local=docker_compose,
remote=f"/home/{app_name}/docker-compose.yml",
)
c.run("cp .env .env.prod")
c.run(
f"docker-compose --project-name {shlex.quote(app_name)} --env-file=.env.prod up --detach --remove-orphans"
)

View File

@ -1,26 +0,0 @@
from fabric import Connection
from invoke import task
import subprocess
import shlex
APP_NAME = "wiki"
SSH_HOST = f"{APP_NAME}@158.160.115.150"
DOCKER_REGISTRY = "cr.yandex/crplfk0168i4o8kd7ade"
def run(args):
return subprocess.run(args, check=True, capture_output=True).stdout
@task
def deploy(c):
print("Ready to setup remote host")
with Connection(SSH_HOST) as c:
c.put(
"docker-compose.yml",
remote=f"/home/{APP_NAME}/docker-compose.yml",
)
c.run("cp .env .env.prod")
c.run(
f"docker-compose --project-name {shlex.quote(APP_NAME)} --env-file=.env.prod up --detach --remove-orphans"
)