iac_modules/playbook/scripts/render.py
2023-03-23 12:15:53 +08:00

38 lines
1.1 KiB
Python

import os
import sys
import subprocess
from pathlib import Path
from jinja2 import Environment, FileSystemLoader
home_dir = str(Path.home())
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
def run_cmd(cmd):
retcode, output = subprocess.getstatusoutput( cmd )
assert retcode == 0
return output
def render_template( template_source, template_result, template_vars ):
inventory_env = Environment(loader=FileSystemLoader(THIS_DIR),
trim_blocks=True)
inventory_template = inventory_env.get_template(template_source)
inventory_output = inventory_template.render(vars=template_vars)
with open(template_result, "w+") as f:
f.write(inventory_output)
if __name__ == '__main__':
dest_dir = sys.argv[1]
key = os.environ['SSH_PRIVATE_KEY']
vars = {}
vars.update( {
'key': key,
'k3s_server_ip': sys.argv[2],
'db_server_ip': sys.argv[3]
} )
render_template('templates/id_rsa', dest_dir+'hosts/id_rsa', vars)
render_template('templates/inventory', dest_dir+'hosts/inventory', vars)