From ea43f571ae0c36ace8121d06519af970f1eec054 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sat, 25 May 2024 18:09:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=20=D1=81=D0=BA=D1=80=D0=B8?= =?UTF-8?q?=D0=BF=D1=82=D0=BE=D0=B2=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=B1=D1=89=D0=B8=D0=B9=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/gitea/deploy.py | 19 +++++++++++++++++++ app/gitea/tasks.py | 23 ----------------------- app/tasks.py | 27 +++++++++++++++++++++++++++ app/wiki/deploy.py | 18 ++++++++++++++++++ app/wiki/tasks.py | 26 -------------------------- 5 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 app/gitea/deploy.py delete mode 100644 app/gitea/tasks.py create mode 100644 app/tasks.py create mode 100644 app/wiki/deploy.py delete mode 100644 app/wiki/tasks.py diff --git a/app/gitea/deploy.py b/app/gitea/deploy.py new file mode 100644 index 0000000..b847098 --- /dev/null +++ b/app/gitea/deploy.py @@ -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" + ) diff --git a/app/gitea/tasks.py b/app/gitea/tasks.py deleted file mode 100644 index 012620a..0000000 --- a/app/gitea/tasks.py +++ /dev/null @@ -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" - ) diff --git a/app/tasks.py b/app/tasks.py new file mode 100644 index 0000000..a83704f --- /dev/null +++ b/app/tasks.py @@ -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()}" diff --git a/app/wiki/deploy.py b/app/wiki/deploy.py new file mode 100644 index 0000000..46a8a94 --- /dev/null +++ b/app/wiki/deploy.py @@ -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" + ) diff --git a/app/wiki/tasks.py b/app/wiki/tasks.py deleted file mode 100644 index 16127a7..0000000 --- a/app/wiki/tasks.py +++ /dev/null @@ -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" - )