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)
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
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