Example #1
0
def setupnode(overwrite=False):
    """
    Install a baseline host. Can be run multiple times

    """
    if not port_is_open():
        if not skip_disable_root():
            disable_root()
        port_changed = change_ssh_port()
    #avoid trying to take shortcuts if setupnode did not finish
    #on previous execution
    if server_state('setupnode-incomplete'):
        env.overwrite = True
    else:
        set_server_state('setupnode-incomplete')
    upload_ssh_key()
    restrict_ssh()
    add_repositories()
    upgrade_packages()
    setup_ufw()
    uninstall_packages()
    install_packages()

    upload_etc()
    post_install_package()
    setup_ufw_rules()
    set_timezone()
    set_server_state('setupnode-incomplete', delete=True)
    #stop and start webservers - and reload nginx
    for s in webserver_list():
        stop_webserver(s)
        start_webserver(s)
Example #2
0
def setupnode(overwrite=False):
    """
    Install a baseline host. Can be run multiple times

    """
    if not port_is_open():
        if not skip_disable_root():
            disable_root()
        port_changed = change_ssh_port()
    #avoid trying to take shortcuts if setupnode did not finish
    #on previous execution
    if server_state('setupnode-incomplete'):
        env.overwrite = True
    else:
        set_server_state('setupnode-incomplete')
    upload_ssh_key()
    restrict_ssh()
    add_repositories()
    upgrade_packages()
    setup_ufw()
    uninstall_packages()
    install_packages()

    upload_etc()
    post_install_package()
    setup_ufw_rules()
    set_timezone()
    set_server_state('setupnode-incomplete', delete=True)
    #stop and start webservers - and reload nginx
    for s in webserver_list():
        stop_webserver(s)
        start_webserver(s)
Example #3
0
def activate():
    """
    Activates the version specified in ``env.project_version`` if it is different
    from the current active version.
    
    An active version is just the version that is symlinked.
    """

    env_path = '/'.join([deployment_root(),'env',env.project_fullname])

    if not exists(env_path):
        print env.host,"ERROR: The version",env.project_version,"does not exist at"
        print env_path
        sys.exit(1)

    active = active_version()
    servers = webserver_list()

    if env.patch or active <> env.project_fullname:
        for s in servers:
            stop_webserver(s)
        
    if not env.patch and active <> env.project_fullname:
        
        if env.verbosity:
            print env.host, "ACTIVATING version", env_path
        
        if not env.nomigration:
            sync_db()
        
        #south migration
        if 'south' in env.INSTALLED_APPS and not env.nomigration and not env.manualmigration:
            migration()
            
        if env.manualmigration or env.MANUAL_MIGRATION: manual_migration()
      
        #activate sites
        activate_sites = [''.join([d.name.replace('.','_'),'-',env.project_version,'.conf']) for d in domain_sites()]
        if 'apache2' in get_packages():
            site_paths = ['/etc/apache2','/etc/nginx']
        else:
            site_paths = ['/etc/nginx']
        
        #disable existing sites
        for path in site_paths:
            for site in _ls_sites('/'.join([path,'sites-enabled'])):
                if site not in activate_sites:
                    sudo("rm %s/sites-enabled/%s"% (path,site))
        
        #activate new sites
        for path in site_paths:
            for site in activate_sites:
                if not exists('/'.join([path,'sites-enabled',site])):
                    sudo("chmod 644 %s" % '/'.join([path,'sites-available',site]))
                    sudo("ln -s %s/sites-available/%s %s/sites-enabled/%s"% (path,site,path,site))
                    if env.verbosity:
                        print " * enabled", "%s/sites-enabled/%s"% (path,site)
        
        #delete existing symlink
        ln_path = '/'.join([deployment_root(),'env',env.project_name])
        run('rm -f '+ln_path)
        #run post deploy hooks
        post_exec_hook('post_deploy')
        #activate
        run('ln -s %s %s'% (env_path,ln_path))

  
        if env.verbosity:
            print env.host,env.project_fullname, "ACTIVATED"
    else:
        if env.verbosity and not env.patch:
            print env.project_fullname,"is the active version"

    if env.patch or active <> env.project_fullname:
        for s in servers:
            start_webserver(s)
        print
    return
Example #4
0
def activate():
    """
    Activates the version specified in ``env.project_version`` if it is different
    from the current active version.
    
    An active version is just the version that is symlinked.
    """

    env_path = '/'.join([deployment_root(), 'env', env.project_fullname])

    if not exists(env_path):
        print env.host, "ERROR: The version", env.project_version, "does not exist at"
        print env_path
        sys.exit(1)

    active = active_version()
    servers = webserver_list()

    if env.patch or active <> env.project_fullname:
        for s in servers:
            stop_webserver(s)

    if not env.patch and active <> env.project_fullname:

        if env.verbosity:
            print env.host, "ACTIVATING version", env_path

        if not env.nomigration:
            sync_db()

        #south migration
        if 'south' in env.INSTALLED_APPS and not env.nomigration and not env.manualmigration:
            migration()

        if env.manualmigration or env.MANUAL_MIGRATION: manual_migration()

        #activate sites
        activate_sites = [
            ''.join(
                [d.name.replace('.', '_'), '-', env.project_version, '.conf'])
            for d in domain_sites()
        ]
        if 'apache2' in get_packages():
            site_paths = ['/etc/apache2', '/etc/nginx']
        else:
            site_paths = ['/etc/nginx']

        #disable existing sites
        for path in site_paths:
            for site in _ls_sites('/'.join([path, 'sites-enabled'])):
                if site not in activate_sites:
                    sudo("rm %s/sites-enabled/%s" % (path, site))

        #activate new sites
        for path in site_paths:
            for site in activate_sites:
                if not exists('/'.join([path, 'sites-enabled', site])):
                    sudo("chmod 644 %s" %
                         '/'.join([path, 'sites-available', site]))
                    sudo("ln -s %s/sites-available/%s %s/sites-enabled/%s" %
                         (path, site, path, site))
                    if env.verbosity:
                        print " * enabled", "%s/sites-enabled/%s" % (path,
                                                                     site)

        #delete existing symlink
        ln_path = '/'.join([deployment_root(), 'env', env.project_name])
        run('rm -f ' + ln_path)
        #run post deploy hooks
        post_exec_hook('post_deploy')
        #activate
        run('ln -s %s %s' % (env_path, ln_path))

        if env.verbosity:
            print env.host, env.project_fullname, "ACTIVATED"
    else:
        if env.verbosity and not env.patch:
            print env.project_fullname, "is the active version"

    if env.patch or active <> env.project_fullname:
        for s in servers:
            start_webserver(s)
        print
    return