def deploy_front(now): with cd(env.deployment_dir(now)): run(u'wget {} -O front.zip'.format(env.fronttaxi_archive)) run('unzip front.zip') with cd(env.fronttaxi_dir(now)), python.virtualenv(env.apitaxi_venv_path(now)): python.install_requirements('requirements.txt') put(environ['APITAXI_CONFIG_FILE'], env.fronttaxi_config_path(now))
def make_default_values(): if not hasattr(env, 'apitaxi_dir'): env.apitaxi_dir = lambda now: env.deployment_dir(now) + '/APITaxi-master' if not hasattr(env, 'fronttaxi_dir'): env.fronttaxi_dir = lambda now: env.deployment_dir(now) + '/APITaxi_front-master' if not hasattr(env, 'uwsgi_api_config_path'): env.uwsgi_api_config_path = lambda now: env.apitaxi_dir(now) + '/uwsgi_api.ini' if not hasattr(env, 'uwsgi_front_config_path'): env.uwsgi_front_config_path = lambda now: env.fronttaxi_dir(now) + '/uwsgi_front.ini' if not hasattr(env, 'uwsgi_api_file'): env.uwsgi_api_file = lambda now: env.apitaxi_dir(now) + '/api_taxi.uwsgi' if not hasattr(env, 'uwsgi_front_file'): env.uwsgi_front_file = lambda now: env.fronttaxi_dir(now) + '/front_taxi.uwsgi' if not hasattr(env, 'apitaxi_venv_path'): env.apitaxi_venv_path = lambda now: env.deployment_dir(now) + '/venvAPITaxi' if not hasattr(env, 'apitaxi_config_path'): env.apitaxi_config_path = lambda now: env.apitaxi_dir(now) + '/APITaxi/prod_settings.py' if not hasattr(env, 'fronttaxi_config_path'): env.fronttaxi_config_path = lambda now: env.fronttaxi_dir(now) + '/APITaxi_front/prod_settings.py' if not hasattr(env, 'geotaxi_authentication'): env.geotaxi_authentication = False
def deploy_nginx_api_site(now): files.upload_template('templates/uwsgi.ini', env.uwsgi_api_config_path(now), context={ 'config_path': env.apitaxi_config_path(now), 'api_path': env.apitaxi_dir(now), 'venv_path': env.apitaxi_venv_path(now), 'uwsgi_file': env.uwsgi_api_file(now), 'uwsgi_pid_file': env.uwsgi_api_pid_file(now), 'uwsgi_log_file1': env.uwsgi_logdir + '/api_launcher.log', 'uwsgi_log_file2': env.uwsgi_logdir + '/api_uwsgi.log', 'uwsgi_launcher_logdir': env.uwsgi_launcher_logdir, 'socket': env.uwsgi_socket_api(now), 'processes': env.wsgi_processes, 'threads': env.wsgi_threads, 'now': now } ) files.upload_template('templates/uwsgi.ini', env.uwsgi_front_config_path(now), context={ 'config_path': env.fronttaxi_config_path(now), 'api_path': env.fronttaxi_dir(now), 'venv_path': env.apitaxi_venv_path(now), 'uwsgi_file': env.uwsgi_front_file(now), 'uwsgi_pid_file': env.uwsgi_front_pid_file(now), 'uwsgi_log_file1': env.uwsgi_logdir + '/front_launcher.log', 'uwsgi_log_file2': env.uwsgi_logdir + '/front_uwsgi.log', 'socket': env.uwsgi_socket_front(now), 'processes': env.wsgi_processes, 'threads': env.wsgi_threads, 'now': now } ) uwsgi = path.join(env.apitaxi_venv_path(now), 'bin', 'uwsgi') require.supervisor.process('uwsgi_api_{}'.format(now), command='{} --ini {}'.format(uwsgi, env.uwsgi_api_config_path(now)), directory=env.apitaxi_venv_path(now), stdout_logfile = '/var/log/nginx/apitaxi.log', user='******' ) require.supervisor.process('uwsgi_front_{}'.format(now), command='{} --ini {}'.format(uwsgi, env.uwsgi_front_config_path(now)), directory=env.apitaxi_venv_path(now), stdout_logfile = '/var/log/nginx/fronttaxi.log', user='******' ) test_uwsgi_is_started(now) celery = path.join(env.apitaxi_venv_path(now), 'bin', 'celery') worker_name = 'send_hail_{}'.format(now) command = '{} worker --app=celery_worker.celery -Q {} -n {} --workdir={}' require.supervisor.process(worker_name, command=command.format(celery, worker_name, worker_name, env.apitaxi_dir(now)), directory=env.apitaxi_dir(now), stdout_logfile='/var/log/celery/send_hail.log', user='******', environment='APITAXI_CONFIG_FILE=prod_settings.py' ) swagger_dir = install_swagger_ui() zupc_dir = install_zupc_cache() require.nginx.site('apitaxi', template_source='templates/nginx_site.conf', domain_name=getattr(env.conf_api, 'HOST', 'localhost'), env='NOW={}'.format(now), port=getattr(env.conf_api, 'PORT', 80), socket_api=env.uwsgi_socket_api(now), socket_front=env.uwsgi_socket_front(now), doc_dir=swagger_dir, zupc_cache_dir=zupc_dir ) path_redis = '{}/redis.sh'.format(env.deployment_dir(now)) require.files.template_file(path=path_redis, template_source='templates/redis.sh', context={'deployment_dir':env.deployment_dir(now)}, mode='770') require.supervisor.process('redis', command=path_redis, stdout_logfile='/var/log/redis/error.log' )