diff --git a/create.py b/create.py index 1b36e5a605b808a25af007c7fe3b811dce229957..289c21da8a5890bcadbeb06b5ca991ae487b0595 100644 --- a/create.py +++ b/create.py @@ -59,8 +59,8 @@ except Exception: sys.exit(1) """ Generating ansible playbooks. """ -try: - generate_playbooks(device_definitions, flags) -except Exception: - print("Playbooks could not be created.") - sys.exit(1) +#try: +generate_playbooks(device_definitions, flags) +#except Exception: +# print("Playbooks could not be created.") +# sys.exit(1) diff --git a/modules/ansible_generator.py b/modules/ansible_generator.py index 13c7090f9c848206031830fffa052bf87ef5d637..d7584e2ef5469cf77046f6f9486c87bcdbd024df 100644 --- a/modules/ansible_generator.py +++ b/modules/ansible_generator.py @@ -1,6 +1,21 @@ +from modules.file_manager import load_template, generate_file + def _create_inventory(input_definitions): """ Creates an inventory file with host groups. """ + host_names = [] + for host in input_definitions["hosts"]: + host_names.append(host["name"]) + + router_names = [] + for router in input_definitions["routers"]: + router_names.append(router["name"]) + + inventory_template = load_template("inventory") + output = inventory_template.render(hosts=host_names, routers=router_names) + generate_file("provisioning/inventory.ini", output) + generate_file("base_provisioning/inventory.ini", output) + def generate_playbooks(input_definitions, flags): """ Generates ansible playbooks. @@ -9,4 +24,4 @@ def generate_playbooks(input_definitions, flags): :param flags: command line input flags """ - _create_inventory(input_definitions) \ No newline at end of file + _create_inventory(input_definitions) diff --git a/templates/inventory b/templates/inventory new file mode 100644 index 0000000000000000000000000000000000000000..cb04ca3c000a9a53e68f060306a83e3050bc4a97 --- /dev/null +++ b/templates/inventory @@ -0,0 +1,10 @@ +[hosts] +{% for host in hosts %} + {{ host }} +{% endfor %} + +[routers] +{% for router in routers %} + {{ router }} +{% endfor %} +