Пример #1
0
def deploy_global_config(config):
    from fabricghdeploykeys.fabric_commands.permissions import set_permissions_file
    repo_dir = get_repo_dir(config)
    global_dir = '{0}/config/ubuntu-16.04/global'.format(repo_dir)
    shared_mem = '/etc/sysctl.d/30-postgresql-shm.conf'
    nginx_conf = '/etc/nginx/nginx.conf'
    postgres_conf = '/etc/postgresql/9.5/main/postgresql.conf'
    uwsgi_socket = '/etc/systemd/system/[email protected]'
    uwsgi_service = '/etc/systemd/system/[email protected]'

    with cd(global_dir):
        sudo('git fetch origin')
        sudo('git reset --hard origin/master')

        sudo('cp 30-postgresql-shm.conf {0}'.format(shared_mem))
        set_permissions_file(shared_mem, 'root', 'root', '644')

        sudo('cp nginx.conf {0}'.format(nginx_conf))
        set_permissions_file(nginx_conf, 'root', 'root', '644')

        sudo('cp postgresql.conf {0}'.format(postgres_conf))
        set_permissions_file(postgres_conf, 'postgres', 'postgres', '644')

        sudo('cp [email protected] {0}'.format(uwsgi_socket))
        set_permissions_file(uwsgi_socket, 'root', 'root', '644')

        sudo('cp [email protected] {0}'.format(uwsgi_service))
        set_permissions_file(uwsgi_service, 'root', 'root', '644')

    sudo('/etc/init.d/nginx restart')
    sudo('/etc/init.d/postgresql restart')
Пример #2
0
def setup_deployment(config):
    django_settings = import_module('newdjangosite.settings_{0}'.format(config))
    db_settings = django_settings.DATABASES['default']
    db_name = db_settings['NAME']
    db_user = db_settings['USER']
    db_password = db_settings['PASSWORD']
    repo_dir = get_repo_dir(config)

    database_created = False
    with settings(abort_exception=AllowedException):
        try:
            run('createdb --encoding=UTF8 --locale=en_US.UTF-8 --owner=postgres --template=template0 {0}'.format(db_name))
            database_created = True
        except AllowedException:
            pass

    with settings(abort_exception=AllowedException):
        try:
            run('createuser -d -R -S {0}'.format(db_user))
        except AllowedException:
            pass

    run('psql -d postgres -c \"ALTER ROLE {0} WITH ENCRYPTED PASSWORD \'{1}\';\"'.format(db_user, db_password))

    _setup_repo(repo_dir)

    with cd(repo_dir):
        if not exists('venv'):
            run('python3 -m venv --system-site-packages venv')

    global_dir = '{0}/config/ubuntu-16.04/global'.format(repo_dir)
    with cd(global_dir):
        uwsgi_socket = '/etc/systemd/system/[email protected]'
        uwsgi_service = '/etc/systemd/system/[email protected]'

        if not exists(uwsgi_socket):
            from fabricghdeploykeys.fabric_commands.permissions import set_permissions_file
            sudo('cp [email protected] {0}'.format(uwsgi_socket))
            set_permissions_file(uwsgi_socket, 'root', 'root', '644')

        if not exists(uwsgi_service):
            sudo('cp [email protected] {0}'.format(uwsgi_service))
            set_permissions_file(uwsgi_service, 'root', 'root', '644')

    deploy(config)

    if database_created:
        with cd(repo_dir):
            run('venv/bin/python web/manage_{0}.py createsuperuser'.format(config))