# Netmiko shell demo ```python import os from netmiko import ConnectHandler from netmiko_model import host_list if os.path.exists('netmiko_session.log'): os.remove('netmiko_session.log') username = 'ptc' password = 'fgt@ptc' for index in range(len(host_list)): with ConnectHandler( device_type='fortinet', ip=host_list[index], username=username, password=password, session_log=f'netmiko_session.log', session_log_file_mode='append' ) as connect: connect.send_command('show firewall addrgrp CloudOP', expect_string='.*#') # 調整 CloudOP 為 Group 並加入 SSL-VPN Policy connect.send_command('config firewall address', expect_string='.*#') connect.send_command('edit "Host_210.69.151.50"', expect_string='.*#') connect.send_command('set subnet 210.69.151.50 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.51"', expect_string='.*#') connect.send_command('set subnet 210.69.151.51 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.52"', expect_string='.*#') connect.send_command('set subnet 210.69.151.52 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.55"', expect_string='.*#') connect.send_command('set subnet 210.69.151.55 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.56"', expect_string='.*#') connect.send_command('set subnet 210.69.151.56 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.57"', expect_string='.*#') connect.send_command('set subnet 210.69.151.57 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.58"', expect_string='.*#') connect.send_command('set subnet 210.69.151.58 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.66"', expect_string='.*#') connect.send_command('set subnet 210.69.151.66 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.67"', expect_string='.*#') connect.send_command('set subnet 210.69.151.67 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.170"', expect_string='.*#') connect.send_command('set subnet 210.69.151.170 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('edit "Host_210.69.151.171"', expect_string='.*#') connect.send_command('set subnet 210.69.151.171 255.255.255.255', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('end', expect_string='.*#') connect.send_command('config firewall policy', expect_string='.*#') connect.send_command('edit 1011', expect_string='.*#') connect.send_command('set dstaddr "N-Cloud Server" "SFS Server" "NET_163.24.180.0/22" "SFS plug-in"', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('end', expect_string='.*#') connect.send_command('config firewall address', expect_string='.*#') connect.send_command('delete CloudOP', expect_string='.*#') connect.send_command('end', expect_string='.*#') connect.send_command('config firewall addrgrp', expect_string='.*#') connect.send_command('edit "CloudOP"', expect_string='.*#') connect.send_command('set member "Host_210.69.151.170" "Host_210.69.151.171" "Host_210.69.151.66" "Host_210.69.151.67" "Host_210.69.151.50" "Host_210.69.151.51" "Host_210.69.151.52" "Host_210.69.151.55" "Host_210.69.151.56" "Host_210.69.151.57" "Host_210.69.151.58"', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('end', expect_string='.*#') connect.send_command('config firewall policy', expect_string='.*#') connect.send_command('edit 1011', expect_string='.*#') connect.send_command('set dstaddr "N-Cloud Server" "SFS Server" "NET_163.24.180.0/22" "CloudOP" "SFS plug-in"', expect_string='.*#') connect.send_command('next', expect_string='.*#') connect.send_command('end', expect_string='.*#') ```