-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbootstrap.py
65 lines (46 loc) · 1.71 KB
/
bootstrap.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python
import sys
import subprocess
import tempfile
import shutil
def generate_ssh_keypair():
outdir = tempfile.mkdtemp()
try:
cmd = "ssh-keygen -t rsa -b 2048 -N '' -f %s/id_rsa" % outdir
rc = subprocess.call(cmd, shell=True)
if rc != 0:
raise RuntimeError("error generating ssh keys: rc=%d" % rc)
priv_key = ['GTSTREAM_SSH_PRIV_KEY="\\']
pub_key = ['GTSTREAM_SSH_PUB_KEY="']
with open("%s/id_rsa" % outdir, 'r') as f:
for line in f:
priv_key.append(line.strip() + '\\n\\')
with open("%s/id_rsa.pub" % outdir, 'r') as f:
pub_key.append(f.read().strip())
priv_key.append('"')
pub_key.append('"')
return '\n'.join(priv_key), ''.join(pub_key)
finally:
shutil.rmtree(outdir)
def generate_environ(template="conf/gtstream-env.sh.in", outfile="conf/gtstream-env.sh", values=None):
if values is None:
values = locals()
with open(template, 'r') as f:
template_data = f.read()
with open(outfile, 'w') as f:
f.write(template_data % values)
print "wrote %s" % outfile
def main(argv):
ssh_private_key, ssh_public_key = generate_ssh_keypair()
rootpw = 'P@ssw0rd1!'
userpw = 'L0gM3In'
enablepw = True
ssh_enable_passwords = 'GTSTREAM_ENABLE_PASSWORDS=false'
ssh_root_password = ssh_user_password = ''
if enablepw:
ssh_enable_passwords = 'GTSTREAM_ENABLE_PASSWORDS=true'
ssh_root_password = 'GTSTREAM_ROOT_PASSWORD=\"%s\"' % rootpw
ssh_user_password = 'GTSTREAM_UBUNTU_PASSWORD=\"%s\"' % userpw
generate_environ(values=locals())
if __name__ == '__main__':
main(sys.argv[1:])