fab settings

prod
Dmitriy Shesterkin 9 years ago
parent 88da071b27
commit fc5243afb1
  1. 18
      Makefile
  2. 117
      fabfile.py

@ -1,4 +1,4 @@
.PHONY: all help build virtualenv requirements-local loaddata run migrate shell collectstatic clean worker qa flush update-develop upgrade-develop docker-bash .PHONY: all help build virtualenv requirements-local loaddata run migrate shell collectstatic clean worker qa flush update-develop upgrade-develop update-develop upgrade-develop
# target: all - Default target. Does nothing. # target: all - Default target. Does nothing.
all: all:
@ -86,12 +86,20 @@ flush:
# target: update-develop - Run push change in repo develop branch and deploy for develop server with restart only web container # target: update-develop - Run push change in repo develop branch and deploy for develop server with restart only web container
update-develop: update-develop:
git push origin develop git push origin develop
fab update fab update_develop
# target: upgrade-develop - Run push change in repo develop branch and deploy for develop server with rebuild container # target: upgrade-develop - Run push change in repo develop branch and deploy for develop server with rebuild container
upgrade-develop: upgrade-develop:
git push origin develop git push origin develop
fab upgrade fab develop upgrade
docker-bash:
fab docker_bash # target: update-prod - Run push change in repo master branch and deploy for prod server with restart only web container
update-prod:
git push origin master
fab prod update
# target: upgrade-prod - Run push change in repo master branch and deploy for prod server with rebuild container
upgrade-prod:
git push origin master
fab prod upgrade

117
fabfile.py vendored

@ -6,103 +6,62 @@ from conf.deploy.common import BRANCH_DEVELOP, BRANCH_PROD, PROJECT_NAME, PROJEC
from conf.deploy.prod import HOSTS, USER, PASS from conf.deploy.prod import HOSTS, USER, PASS
from conf.deploy.develop import HOSTS as HOSTS_DEVELOP, USER as USER_DEVELOP, PASS as PASS_DEVELOP from conf.deploy.develop import HOSTS as HOSTS_DEVELOP, USER as USER_DEVELOP, PASS as PASS_DEVELOP
PROJECT_DIR = f'opt/app/{PROJECT_NAME}'
PROJECT_DIR_DEVELOP = f'projects/{PROJECT_NAME_DEVELOP}'
env.user = USER
env.password = PASS
env.hosts = HOSTS
@task
def pull_prod():
with cd(PROJECT_DIR):
run(f'git pull origin {BRANCH_PROD}')
@task
def docker_rebuild_prod():
with cd(PROJECT_DIR):
run('docker-compose build')
run('docker-compose down')
run('docker-compose up -d')
@task
def docker_restart_prod():
with cd(PROJECT_DIR):
run('docker-compose restart web')
@task @task
def upgrade_prod(): def develop():
pull_prod() env.status = 'develop'
docker_rebuild_prod()
@task
def update_prod():
pull_prod()
docker_restart_prod()
@task
def pull_develop():
env.user = USER_DEVELOP env.user = USER_DEVELOP
env.password = PASS_DEVELOP env.password = PASS_DEVELOP
env.hosts = HOSTS_DEVELOP env.hosts = HOSTS_DEVELOP
env.PROJECT_DIR = f'projects/{PROJECT_NAME_DEVELOP}'
with cd(PROJECT_DIR): env.BRANCH = BRANCH_DEVELOP
run(f'git pull origin {BRANCH_DEVELOP}')
@task @task
def docker_rebuild_develop(): def prod():
env.user = USER_DEVELOP env.status = 'prod'
env.password = PASS_DEVELOP env.user = USER
env.hosts = HOSTS_DEVELOP env.password = PASS
env.hosts = HOSTS
with cd(PROJECT_DIR_DEVELOP): env.PROJECT_DIR = f'opt/app/{PROJECT_NAME}'
run('docker-compose -f docker-compose.develop.conf build') env.BRANCH = BRANCH_PROD
run('docker-compose -f docker-compose.develop.conf down')
run('docker-compose -f docker-compose.develop.conf up -d')
@task @task
def docker_restart_develop(): def pull():
env.user = USER_DEVELOP with cd(env.PROJECT_DIR):
env.password = PASS_DEVELOP run(f'git pull origin {env.BRANCH}')
env.hosts = HOSTS_DEVELOP
with cd(PROJECT_DIR_DEVELOP):
run('docker-compose -f docker-compose.develop.conf restart web')
@task @task
def docker_bash_develop(): def docker_rebuild():
env.user = USER_DEVELOP with cd(env.PROJECT_DIR):
env.password = PASS_DEVELOP if env.status == 'prod':
env.hosts = HOSTS_DEVELOP run('docker-compose build')
run('docker-compose down')
with cd(PROJECT_DIR_DEVELOP): run('docker-compose up -d')
run('docker-compose -f docker-compose.develop.conf exec web bash') else:
run('docker-compose -f docker-compose.develop.yml build')
run('docker-compose -f docker-compose.develop.yml down')
run('docker-compose -f docker-compose.develop.yml up -d')
@task @task
def upgrade_develop(): def docker_restart():
env.user = USER_DEVELOP with cd(env.PROJECT_DIR):
env.password = PASS_DEVELOP if env.status == 'prod':
env.hosts = HOSTS_DEVELOP run('docker-compose restart web')
else:
pull_develop() run('docker-compose -f docker-compose.develop.yml restart web')
docker_rebuild_develop()
@task @task
def update_prod(): def upgrade():
env.user = USER pull()
env.password = PASS docker_rebuild()
env.hosts = HOSTS_DEVELOP
pull_develop()
docker_restart_develop() @task
def update():
pull()
docker_restart()

Loading…
Cancel
Save