Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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'
    )