def _webserver_include_path(): webserver_conf_dir = { 'apache_redhat': '/etc/httpd/conf.d/includes', 'apache_debian': '/etc/apache2/sites-available/includes', } key = env.webserver + '_' + fablib._linux_type() if key in webserver_conf_dir: return path.join(webserver_conf_dir[key], '%s_%s.conf' % (env.project_name, env.environment)) else: utils.abort('webserver %s is not supported (linux type %s)' % (env.webserver, fablib._linux_type()))
def _webserver_conf_path(): require('webserver', 'project_name', provided_by=env.valid_envs) webserver_conf_dir = { 'apache_redhat': '/etc/httpd/conf.d', 'apache_debian': '/etc/apache2/sites-available', } key = env.webserver + '_' + fablib._linux_type() if key in webserver_conf_dir: return path.join(webserver_conf_dir[key], '%s.conf' % (env.environment)) else: utils.abort('webserver %s is not supported (linux type %s)' % (env.webserver, fablib._linux_type()))
def link_webserver_conf(maintenance=False): """link the webserver conf file""" require('vcs_root_dir', provided_by=env.valid_envs) if env.webserver is None: return # TODO: if you want to deploy this separate to opencontracting then # you need to uncomment various lines below # create paths in the vcs checkout vcs_config_stub = path.join(env.vcs_root_dir, env.webserver, env.environment) vcs_config_live = vcs_config_stub + '.conf' vcs_config_include = vcs_config_stub + '_include.conf' # create paths in the webserver config webserver_conf = _webserver_conf_path() webserver_include = _webserver_include_path() # ensure the includes dir exists webserver_include_dir = '/etc/apache2/sites-available/includes' fablib._create_dir_if_not_exists(webserver_include_dir) # ensure the main file is linked properly if not files.exists(vcs_config_live): utils.abort('No %s conf file found - expected %s' % (env.webserver, vcs_config_live)) fablib._delete_file(webserver_conf) fablib._link_files(vcs_config_live, webserver_conf) # now manage the include file if maintenance: fablib._delete_file(webserver_include) else: if not files.exists(vcs_config_include): utils.abort('No %s conf file found - expected %s' % (env.webserver, vcs_config_include)) fablib._delete_file(webserver_include) fablib._link_files(vcs_config_include, webserver_include) # debian has sites-available/sites-enabled split with links if fablib._linux_type() == 'debian': webserver_conf_enabled = webserver_conf.replace('available', 'enabled') fablib._link_files(webserver_conf, webserver_conf_enabled) fablib.webserver_configtest()