From 86f0ff5aa939f5137aa9d44b7b7ffedb47616c45 Mon Sep 17 00:00:00 2001 From: Attila Farkas <x394097@fi.muni.cz> Date: Fri, 4 Oct 2019 15:27:59 +0200 Subject: [PATCH] remove import_playbook --- modules/file_generator.py | 10 +++++++--- templates/playbook | 25 +++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/modules/file_generator.py b/modules/file_generator.py index 60a0083..dcf88c7 100644 --- a/modules/file_generator.py +++ b/modules/file_generator.py @@ -55,11 +55,15 @@ def generate_vagrantfile(definitions): print("Info: Vagrantfile successfully created.") -def _generate_playbook(): +def _generate_playbook(definitions): """ Generates the main playbook. """ + host_map = create_host_map(definitions["net_mappings"], definitions["router_mappings"], definitions["hosts"]) + network = create_network_map( + definitions["net_mappings"], definitions["router_mappings"]) + template = _load_template("playbook") - output = template.render() + output = template.render(hosts=host_map, routers=network) try: os.mkdir("provisioning") @@ -124,7 +128,7 @@ def _generate_routers_role(definitions): def generate_ansible_files(device_definitions): """ Generates files for ansible. """ - _generate_playbook() + _generate_playbook(device_definitions) _generate_device_configuration(device_definitions) _generate_hosts_role(device_definitions) _generate_routers_role(device_definitions) diff --git a/templates/playbook b/templates/playbook index e8ec847..4967233 100644 --- a/templates/playbook +++ b/templates/playbook @@ -1,7 +1,28 @@ --- -# Main ansible playground +# Main ansible playbook - - import_playbook: device_configuration.yml +#- import_playbook: device_configuration.yml - for new version + +- name: Configuring all hosts + hosts: {{ hosts|map(attribute='host_name')|unique|join(',') }} + become: yes + roles: + - hosts + +{% for host in hosts %} +- name: Configuring host {{ host.host_name }} + hosts: {{ host.host_name }} + become: yes + tasks: + - name: Change default gateway + command: route add default gw {{ host.router_ip }} {{ host.interface }} + +{% endfor %} +- name: Configuring all routers + hosts: {{ routers|map(attribute='router_name')|unique|join(',') }} + become: yes + roles: + - routers # Write your custom configuration here: -- GitLab