Beispiel #1
0
def setup_sudoers(user):
    if not os.path.exists('/etc/sudoers.d'):
        os.makedirs('/etc/sudoers.d')

        set_permissions = False
        if not os.path.exists('/etc/sudoers'):
            set_permissions = True

        with open('/etc/sudoers', 'a') as f:
            f.write('\n#includedir /etc/sudoers.d\n')

        if set_permissions:
            os.chmod('/etc/sudoers', 0o440)

    sudoers_file = '/etc/sudoers.d/frappe'

    template = env.get_template('frappe_sudoers')
    frappe_sudoers = template.render(
        **{
            'user': user,
            'service': find_executable('service'),
            'systemctl': find_executable('systemctl'),
            'supervisorctl': find_executable('supervisorctl'),
            'nginx': find_executable('nginx'),
            'bench': find_executable('bench')
        })
    frappe_sudoers = safe_decode(frappe_sudoers)

    with open(sudoers_file, 'w') as f:
        f.write(frappe_sudoers)

    os.chmod(sudoers_file, 0o440)
Beispiel #2
0
def setup_sudoers(user):
	if not os.path.exists('/etc/sudoers.d'):
		os.makedirs('/etc/sudoers.d')

		set_permissions = False
		if not os.path.exists('/etc/sudoers'):
			set_permissions = True

		with open('/etc/sudoers', 'a') as f:
			f.write('\n#includedir /etc/sudoers.d\n')

		if set_permissions:
			os.chmod('/etc/sudoers', 0o440)

	sudoers_file = '/etc/sudoers.d/frappe'

	template = env.get_template('frappe_sudoers')
	frappe_sudoers = template.render(**{
		'user': user,
		'service': find_executable('service'),
		'systemctl': find_executable('systemctl'),
		'supervisorctl': find_executable('supervisorctl'),
		'nginx': find_executable('nginx'),
		'bench': find_executable('bench')
	})
	frappe_sudoers = safe_decode(frappe_sudoers)

	with open(sudoers_file, 'w') as f:
		f.write(frappe_sudoers)

	os.chmod(sudoers_file, 0o440)
Beispiel #3
0
def setup_sudoers(user):
    if not os.path.exists("/etc/sudoers.d"):
        os.makedirs("/etc/sudoers.d")

        set_permissions = False
        if not os.path.exists("/etc/sudoers"):
            set_permissions = True

        with open("/etc/sudoers", "a") as f:
            f.write("\n#includedir /etc/sudoers.d\n")

        if set_permissions:
            os.chmod("/etc/sudoers", 0440)

    sudoers_file = "/etc/sudoers.d/frappe"

    template = env.get_template("frappe_sudoers")
    frappe_sudoers = template.render(
        **{
            "user": user,
            "service": find_executable("service"),
            "systemctl": find_executable("systemctl"),
            "supervisorctl": find_executable("supervisorctl"),
            "nginx": find_executable("nginx"),
            "bench": find_executable("bench"),
        }
    )

    with open(sudoers_file, "w") as f:
        f.write(frappe_sudoers.encode("utf-8"))

    os.chmod(sudoers_file, 0440)
Beispiel #4
0
def make_nginx_conf(bench_path, yes=False):
	from bench import env
	from bench.config.common_site_config import get_config

	template = env.get_template('nginx.conf')
	bench_path = os.path.abspath(bench_path)
	sites_path = os.path.join(bench_path, "sites")

	config = get_config(bench_path)
	sites = prepare_sites(config, bench_path)

	nginx_conf = template.render(**{
		"sites_path": sites_path,
		"http_timeout": config.get("http_timeout"),
		"sites": sites,
		"webserver_port": config.get('webserver_port'),
		"socketio_port": config.get('socketio_port'),
		"bench_name": get_bench_name(bench_path),
		"error_pages": get_error_pages(),

		# for nginx map variable
		"random_string": "".join(random.choice(string.ascii_lowercase) for i in xrange(7))
	})

	conf_path = os.path.join(bench_path, "config", "nginx.conf")
	if not yes and os.path.exists(conf_path):
		click.confirm('nginx.conf already exists and this will overwrite it. Do you want to continue?',
			abort=True)

	with open(conf_path, "w") as f:
		f.write(nginx_conf)
Beispiel #5
0
def make_nginx_conf(bench_path, force=False):
    from bench import env
    from bench.config.common_site_config import get_config

    template = env.get_template('nginx.conf')
    bench_path = os.path.abspath(bench_path)
    sites_path = os.path.join(bench_path, "sites")

    config = get_config(bench_path)
    sites = prepare_sites(config, bench_path)

    nginx_conf = template.render(
        **{
            "sites_path": sites_path,
            "http_timeout": config.get("http_timeout"),
            "sites": sites,
            "webserver_port": config.get('webserver_port'),
            "socketio_port": config.get('socketio_port'),
            "bench_name": get_bench_name(bench_path)
        })

    conf_path = os.path.join(bench_path, "config", "nginx.conf")
    if not force and os.path.exists(conf_path):
        click.confirm(
            'nginx.conf already exists and this will overwrite it. Do you want to continue?',
            abort=True)

    with open(conf_path, "w") as f:
        f.write(nginx_conf)
Beispiel #6
0
def make_nginx_conf(bench_path, force=False):
	from bench import env
	from bench.config.common_site_config import get_config

	template = env.get_template('nginx.conf')
	bench_path = os.path.abspath(bench_path)
	sites_path = os.path.join(bench_path, "sites")

	config = get_config(bench_path)
	sites = prepare_sites(config, bench_path)

	nginx_conf = template.render(**{
		"sites_path": sites_path,
		"http_timeout": config.get("http_timeout"),
		"sites": sites,
		"webserver_port": config.get('webserver_port'),
		"socketio_port": config.get('socketio_port'),
		"bench_name": get_bench_name(bench_path)
	})

	conf_path = os.path.join(bench_path, "config", "nginx.conf")
	if not force and os.path.exists(conf_path):
		click.confirm('nginx.conf already exists and this will overwrite it. Do you want to continue?',
			abort=True)

	with open(conf_path, "w") as f:
		f.write(nginx_conf)
Beispiel #7
0
def make_nginx_conf(bench_path, yes=False):
    conf_path = os.path.join(bench_path, "config", "nginx.conf")

    if not yes and os.path.exists(conf_path):
        if not click.confirm(
                'nginx.conf already exists and this will overwrite it. Do you want to continue?'
        ):
            return

    from bench import env
    from bench.config.common_site_config import get_config

    template = env.get_template('nginx.conf')
    bench_path = os.path.abspath(bench_path)
    sites_path = os.path.join(bench_path, "sites")

    config = get_config(bench_path)
    sites = prepare_sites(config, bench_path)
    bench_name = get_bench_name(bench_path)

    allow_rate_limiting = config.get('allow_rate_limiting', False)

    template_vars = {
        "sites_path":
        sites_path,
        "http_timeout":
        config.get("http_timeout"),
        "sites":
        sites,
        "webserver_port":
        config.get('webserver_port'),
        "socketio_port":
        config.get('socketio_port'),
        "bench_name":
        bench_name,
        "error_pages":
        get_error_pages(),
        "allow_rate_limiting":
        allow_rate_limiting,
        # for nginx map variable
        "random_string":
        "".join(random.choice(string.ascii_lowercase) for i in range(7))
    }

    if allow_rate_limiting:
        template_vars.update({
            'bench_name_hash':
            hashlib.sha256(bench_name).hexdigest()[:16],
            'limit_conn_shared_memory':
            get_limit_conn_shared_memory()
        })

    nginx_conf = template.render(**template_vars)

    with open(conf_path, "w") as f:
        f.write(nginx_conf)
Beispiel #8
0
def make_bench_manager_nginx_conf(bench_path,
                                  yes=False,
                                  port=23624,
                                  domain=None):
    from bench import env
    from bench.config.site_config import get_site_config
    from bench.config.common_site_config import get_config

    template = env.get_template('bench_manager_nginx.conf')
    bench_path = os.path.abspath(bench_path)
    sites_path = os.path.join(bench_path, "sites")

    config = get_config(bench_path)
    site_config = get_site_config(domain, bench_path=bench_path)
    sites = prepare_sites(config, bench_path)
    bench_name = get_bench_name(bench_path)

    template_vars = {
        "port": port,
        "domain": domain,
        "bench_manager_site_name": "bench-manager.local",
        "sites_path": sites_path,
        "http_timeout": config.get("http_timeout"),
        "webserver_port": config.get('webserver_port'),
        "socketio_port": config.get('socketio_port'),
        "bench_name": bench_name,
        "error_pages": get_error_pages(),
        "ssl_certificate": site_config.get('ssl_certificate'),
        "ssl_certificate_key": site_config.get('ssl_certificate_key')
    }

    bench_manager_nginx_conf = template.render(**template_vars)

    conf_path = os.path.join(bench_path, "config", "nginx.conf")

    if not yes and os.path.exists(conf_path):
        click.confirm(
            'nginx.conf already exists and bench-manager configuration will be appended to it. Do you want to continue?',
            abort=True)

    with open(conf_path, "a") as myfile:
        myfile.write(bench_manager_nginx_conf)
Beispiel #9
0
def make_nginx_conf(bench_path, yes=False):
	from bench import env
	from bench.config.common_site_config import get_config

	template = env.get_template('nginx.conf')
	bench_path = os.path.abspath(bench_path)
	sites_path = os.path.join(bench_path, "sites")

	config = get_config(bench_path)
	sites = prepare_sites(config, bench_path)
	bench_name = get_bench_name(bench_path)

	allow_rate_limiting = config.get('allow_rate_limiting', False)

	template_vars = {
		"sites_path": sites_path,
		"http_timeout": config.get("http_timeout"),
		"sites": sites,
		"webserver_port": config.get('webserver_port'),
		"socketio_port": config.get('socketio_port'),
		"bench_name": bench_name,
		"error_pages": get_error_pages(),
		"allow_rate_limiting": allow_rate_limiting,
		# for nginx map variable
		"random_string": "".join(random.choice(string.ascii_lowercase) for i in xrange(7))
	}

	if allow_rate_limiting:
		template_vars.update({
			'bench_name_hash': hashlib.sha256(bench_name).hexdigest()[:16],
			'limit_conn_shared_memory': get_limit_conn_shared_memory()
		})

	nginx_conf = template.render(**template_vars)

	conf_path = os.path.join(bench_path, "config", "nginx.conf")
	if not yes and os.path.exists(conf_path):
		click.confirm('nginx.conf already exists and this will overwrite it. Do you want to continue?',
			abort=True)

	with open(conf_path, "w") as f:
		f.write(nginx_conf)
Beispiel #10
0
def make_nginx_conf(bench_path):
	from bench import env
	from bench.config.common_site_config import get_config

	template = env.get_template('nginx.conf')
	bench_path = os.path.abspath(bench_path)
	sites_path = os.path.join(bench_path, "sites")

	config = get_config(bench_path)
	sites = prepare_sites(config, bench_path)

	nginx_conf = template.render(**{
		"sites_path": sites_path,
		"http_timeout": config.get("http_timeout"),
		"sites": sites,
		"webserver_port": config.get('webserver_port'),
		"socketio_port": config.get('socketio_port'),
		"bench_name": get_bench_name(bench_path)
	})

	with open(os.path.join(bench_path, "config", "nginx.conf"), "w") as f:
		f.write(nginx_conf)
Beispiel #11
0
def make_bench_manager_nginx_conf(bench_path, yes=False, port=23624, domain=None):
	from bench import env
	from bench.config.site_config import get_site_config
	from bench.config.common_site_config import get_config

	template = env.get_template('bench_manager_nginx.conf')
	bench_path = os.path.abspath(bench_path)
	sites_path = os.path.join(bench_path, "sites")

	config = get_config(bench_path)
	site_config = get_site_config(domain, bench_path=bench_path)
	sites = prepare_sites(config, bench_path)
	bench_name = get_bench_name(bench_path)

	template_vars = {
		"port": port,
		"domain": domain,
		"bench_manager_site_name": "bench-manager.local",
		"sites_path": sites_path,
		"http_timeout": config.get("http_timeout"),
		"webserver_port": config.get('webserver_port'),
		"socketio_port": config.get('socketio_port'),
		"bench_name": bench_name,
		"error_pages": get_error_pages(),
		"ssl_certificate": site_config.get('ssl_certificate'),
		"ssl_certificate_key": site_config.get('ssl_certificate_key')
	}

	bench_manager_nginx_conf = template.render(**template_vars)

	conf_path = os.path.join(bench_path, "config", "nginx.conf")

	if not yes and os.path.exists(conf_path):
		click.confirm('nginx.conf already exists and bench-manager configuration will be appended to it. Do you want to continue?',
			abort=True)

	with open(conf_path, "a") as myfile:
		myfile.write(bench_manager_nginx_conf)