def require_solr(): # pragma: no cover fabtools.require.deb.package('tomcat6') fabtools.require.deb.package('curl') fabtools.require.deb.package('apache2-utils') fabtools.require.files.directory(SOLR_HOME, use_sudo=True, owner='root', group='root') fabtools.require.files.directory(data_dir(), use_sudo=True, owner='tomcat6') if not exists(SOLR_HOME.joinpath('solr.xml')): sudo('curl -o /tmp/solr.tgz %s' % SOLR_DOWNLOAD) with cd('/tmp'): sudo('tar -xzvf solr.tgz') sudo('cp -R solr-4.5.1/example/solr/* %s' % SOLR_HOME) # TODO: #cp solr-4.5.1/example/lib/ext/*.jar /usr/share/tomcat6/lib/ sudo('cp solr-4.5.1/example/webapps/solr.war %s' % SOLR_HOME) sudo('rm -rf %s' % core_dir('collection1', 'conf', 'velocity')) sudo('rm -rf %s' % core_dir('collection1', 'conf', 'xslt')) sudo('rm -rf solr-4.5.1') sudo('rm solr.tgz') create_file_as_root( core_dir('collection1', 'conf', 'solrconfig.xml'), _content(SOLRCONFIG) % data_dir('collection1')) create_file_as_root(core_dir('collection1', 'conf', 'schema.xml'), _content(SCHEMA)) # # TODO: proxy behind nginx with basic auth! # https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-nginx-for-ubuntu-12-04 # #create_file_as_root(APP.nginx_location, '') create_file_as_root('/etc/tomcat6/Catalina/localhost/solr.xml', TOMCAT_SOLR_CONFIG) restart_tomcat(check_path='/admin/ping')
def require_core(name, schema=None): # pragma: no cover if not exists(core_dir(name)): sudo('cp -R %s %s' % (core_dir('collection1'), core_dir(name))) create_file_as_root( core_dir(name, 'conf', 'solrconfig.xml'), _content(SOLRCONFIG) % data_dir(name)) create_file_as_root(core_dir(name, 'conf', 'schema.xml'), _content(SCHEMA)) create_file_as_root(core_dir(name, 'core.properties'), 'name=%s' % name) restart_tomcat(check_path='/%s/admin/ping' % name)
def cache(app): # pragma: no cover """require an app to be put behind varnish """ require.deb.package('varnish') create_file_as_root('/etc/default/varnish', DEFAULT) create_file_as_root('/etc/varnish/main.vcl', MAIN_VCL) sites_vcl = '/etc/varnish/sites.vcl' site_config_dir = '/etc/varnish/sites' site_config = '/'.join(site_config_dir, '{app.name}.vcl'.format(app=app)) include = 'include "%s";' % site_config if exists(sites_vcl): append(sites_vcl, include, use_sudo=True) else: create_file_as_root(sites_vcl, include + '\n') require.files.directory(site_config_dir, use_sudo=True) create_file_as_root(site_config, SITE_VCL_TEMPLATE.format(app=app)) service.restart('varnish') template_vars = get_template_variables(App(app.name, 6081, domain=app.domain)) template_vars['SITE'] = True upload_template_as_root(app.nginx_site, 'nginx-app.conf', template_vars) service.reload('nginx')
def uncache(app): # pragma: no cover tv = get_template_variables(app) tv['auth'] = http_auth(app) create_file_as_root(app.nginx_site, SITE_TEMPLATE.format(**tv)) service.reload('nginx')