diff --git a/TP_03/config/ESW1_CPE_LYON_BAT_A.conf b/TP_03/config/ESW1_CPE_LYON_BAT_A.conf new file mode 100644 index 0000000..383cda8 --- /dev/null +++ b/TP_03/config/ESW1_CPE_LYON_BAT_A.conf @@ -0,0 +1,30 @@ + +vlan 10 + name teacher + exit +vlan 20 + name student + exit + + +interface fa1/14 + switchport mode trunk + switchport trunk allowed vlan all + exit + +interface fa1/15 + switchport mode trunk + switchport trunk allowed vlan all + exit + +interface fa1/1 + switchport mode access + switchport access vlan 10 + description "port vlan teacher" + exit + +interface fa1/2 + switchport mode access + switchport access vlan 20 + description "port vlan student" + exit \ No newline at end of file diff --git a/TP_03/config/ESW1_CPE_LYON_BAT_B.conf b/TP_03/config/ESW1_CPE_LYON_BAT_B.conf new file mode 100644 index 0000000..383cda8 --- /dev/null +++ b/TP_03/config/ESW1_CPE_LYON_BAT_B.conf @@ -0,0 +1,30 @@ + +vlan 10 + name teacher + exit +vlan 20 + name student + exit + + +interface fa1/14 + switchport mode trunk + switchport trunk allowed vlan all + exit + +interface fa1/15 + switchport mode trunk + switchport trunk allowed vlan all + exit + +interface fa1/1 + switchport mode access + switchport access vlan 10 + description "port vlan teacher" + exit + +interface fa1/2 + switchport mode access + switchport access vlan 20 + description "port vlan student" + exit \ No newline at end of file diff --git a/TP_03/config/R1_CPE_LYON_BAT_A.conf b/TP_03/config/R1_CPE_LYON_BAT_A.conf new file mode 100644 index 0000000..d547690 --- /dev/null +++ b/TP_03/config/R1_CPE_LYON_BAT_A.conf @@ -0,0 +1,15 @@ + +interface g2/0 + no shutdown + exit +interface g2/0.10 + encapsulation dot1Q 10 + description "Gateway for teacher vlan" + ip address 172.16.10.253 255.255.255.0 + exit + +interface g2/0.20 + encapsulation dot1Q 20 + description "Gateway for student vlan" + ip address 172.16.20.253 255.255.255.0 + exit diff --git a/TP_03/config/R1_CPE_LYON_BAT_B.conf b/TP_03/config/R1_CPE_LYON_BAT_B.conf new file mode 100644 index 0000000..3f103a4 --- /dev/null +++ b/TP_03/config/R1_CPE_LYON_BAT_B.conf @@ -0,0 +1,18 @@ + +interface g3/0 + encapsulation dot1Q + description "**NO DESCRIPTION**" + ip address + exit + +interface g3/0.10 + encapsulation dot1Q 10 + description "Gateway for teacher vlan" + ip address 172.16.30.253 255.255.255.0 + exit + +interface g3/0.20 + encapsulation dot1Q 20 + description "Gateway for student vlan" + ip address 172.16.40.253 255.255.255.0 + exit diff --git a/TP_03/config/R2_CPE_LYON_BAT_A.conf b/TP_03/config/R2_CPE_LYON_BAT_A.conf new file mode 100644 index 0000000..dd14f56 --- /dev/null +++ b/TP_03/config/R2_CPE_LYON_BAT_A.conf @@ -0,0 +1,15 @@ + +interface g2/0 + no shutdown + exit +interface g2/0.10 + encapsulation dot1Q 10 + description "Gateway for teacher vlan" + ip address 172.16.10.254 255.255.255.0 + exit + +interface g2/0.20 + encapsulation dot1Q 20 + description "Gateway for student vlan" + ip address 172.16.20.254 255.255.255.0 + exit diff --git a/TP_03/config/R2_CPE_LYON_BAT_B.conf b/TP_03/config/R2_CPE_LYON_BAT_B.conf new file mode 100644 index 0000000..1421cb3 --- /dev/null +++ b/TP_03/config/R2_CPE_LYON_BAT_B.conf @@ -0,0 +1,18 @@ + +interface g3/0 + encapsulation dot1Q + description "**NO DESCRIPTION**" + ip address + exit + +interface g3/0.10 + encapsulation dot1Q 10 + description "Gateway for teacher vlan" + ip address 172.16.30.254 255.255.255.0 + exit + +interface g3/0.20 + encapsulation dot1Q 20 + description "Gateway for student vlan" + ip address 172.16.40.254 255.255.255.0 + exit diff --git a/TP_03/scripts/create_config.py b/TP_03/scripts/create_config.py index 462b977..06c5322 100644 --- a/TP_03/scripts/create_config.py +++ b/TP_03/scripts/create_config.py @@ -5,41 +5,66 @@ env = Environment(loader=FileSystemLoader("templates")) def load_json_data_from_file(file_path): - pass - + with open(file_path) as json_file: + data = json.load(json_file) + return data def render_network_config(template_name, data): - pass + template = env.get_template(template_name) + return template.render(data) def save_built_config(file_name, data): - pass + with open(file_name, "w") as f: + f.write(data) + return file_name def create_config_cpe_lyon_batA(): - esw3_data = load_json_data_from_file(file_path='data/vlan_ESW3.json') - esw3_config = render_network_config(template_name='vlan_switch.j2', data=esw3_data) + ESW1_CPE_LYON_BAT_A_data= load_json_data_from_file(file_path='data/ESW1_CPE_LYON_BAT_A.json') + ESW1_CPE_LYON_BAT_A_config = render_network_config(template_name='vlan_switch.j2', data=ESW1_CPE_LYON_BAT_A_data) - R3_data = load_json_data_from_file(file_path='data/vlan_R03.json') - R3_config = render_network_config(template_name='vlan_router.j2', data=R3_data) - return R3_config,esw3_config + R2_LYON_BAT_A_data = load_json_data_from_file(file_path='data/R2_CPE_LYON_BAT_A.json') + R2_LYON_BAT_A_config = render_network_config(template_name='vlan_router.j2', data=R2_LYON_BAT_A_data) + + R1_LYON_BAT_A_data = load_json_data_from_file(file_path='data/R1_CPE_LYON_BAT_A.json') + R1_LYON_BAT_A_config = render_network_config(template_name='vlan_router.j2', data=R1_LYON_BAT_A_data) + + return { + 'esw1': ESW1_CPE_LYON_BAT_A_config, + 'r1': R1_LYON_BAT_A_config, + 'r2': R2_LYON_BAT_A_config + } def create_config_cpe_lyon_batB(): - pass + ESW1_CPE_LYON_BAT_B_data= load_json_data_from_file(file_path='data/ESW1_CPE_LYON_BAT_B.json') + ESW1_CPE_LYON_BAT_B_config = render_network_config(template_name='vlan_switch.j2', data=ESW1_CPE_LYON_BAT_B_data) + + R2_LYON_BAT_B_data = load_json_data_from_file(file_path='data/R2_CPE_LYON_BAT_B.json') + R2_LYON_BAT_B_config = render_network_config(template_name='vlan_router.j2', data=R2_LYON_BAT_B_data) + + R1_LYON_BAT_B_data = load_json_data_from_file(file_path='data/R1_CPE_LYON_BAT_B.json') + R1_LYON_BAT_B_config = render_network_config(template_name='vlan_router.j2', data=R1_LYON_BAT_B_data) + + return { + 'esw1': ESW1_CPE_LYON_BAT_B_config, + 'r1': R1_LYON_BAT_B_config, + 'r2': R2_LYON_BAT_B_config + } if __name__ == "__main__": """ process question 3 to 5: """ #question 3: - #config = create_config_cpe_lyon_batA() + config = create_config_cpe_lyon_batA() #question 4: - # save_built_config('config/R1_CPE_LYON_BAT_A.conf', config.get('r1')) - # save_built_config('config/R2_CPE_LYON_BAT_A.conf', config.get('r2')) - # save_built_config('config/ESW1_CPE_LYON_BAT_A.conf', config.get('esw1')) + save_built_config('config/R1_CPE_LYON_BAT_A.conf', config.get('r1')) + save_built_config('config/R2_CPE_LYON_BAT_A.conf', config.get('r2')) + save_built_config('config/ESW1_CPE_LYON_BAT_A.conf', config.get('esw1')) #question 5: - # config = create_config_cpe_lyon_batB() - # save_built_config('config/R1_CPE_LYON_BAT_B.conf', config.get('r1')) - # save_built_config('config/R2_CPE_LYON_BAT_B.conf', config.get('r2')) - # save_built_config('config/ESW1_CPE_LYON_BAT_B.conf', config.get('esw1')) + config = create_config_cpe_lyon_batB() + save_built_config('config/R1_CPE_LYON_BAT_B.conf', config.get('r1')) + save_built_config('config/R2_CPE_LYON_BAT_B.conf', config.get('r2')) + save_built_config('config/ESW1_CPE_LYON_BAT_B.conf', config.get('esw1')) \ No newline at end of file