forked from jacobian/django-deployment-workshop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fab_utils.py
36 lines (29 loc) · 1.29 KB
/
fab_utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
from tempfile import NamedTemporaryFile as _NamedTemporaryFile
from fabric.api import env, run, cd, sudo, put, require, settings, hide
def _render_template(localpath, templatevars):
template = open(localpath).read()
return str(template) % templatevars
def _make_temp(data):
tmpfile = _NamedTemporaryFile(delete=False)
tmpfile.write(data)
tmpfile.close()
return tmpfile
def _make_template_temp(localpath, templatevars):
return _make_temp(_render_template(localpath, templatevars))
def _put_template(localpath, remotepath, templatevars, **kwargs):
tmpfile = _make_template_temp(localpath, templatevars)
put(tmpfile.name, remotepath, **kwargs)
os.unlink(tmpfile.name)
def _new_user(username, group='users', password=False):
# Create the new admin user (default group=username); add to admin group
sudo('adduser {username} --disabled-password --gecos ""'.format(
username=username))
sudo('adduser {username} {group}'.format(
username=username,
group=group))
if password:
# Set the password for the new admin user
sudo('echo "{username}:{password}" | chpasswd'.format(
username=admin_username,
password=admin_password))