我是靠谱客的博主 追寻小蚂蚁,最近开发中收集的这篇文章主要介绍利用Jenkins登录防火墙(或交换机)进行自动化配置(一)下面进行利用Jenkins进行操作流程,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
本文重点是利用Jenkins如何登录网络设备进行网络配置,之后我会发一个我配置交换机的job
原始操作流程
1、规划:公司内部有一台服务器10.10.80.93 7001端口需要映射到外网,通过外网IP+端口进行访问,这就需要配置防火墙的端口映射
object network 10.10.80.93-7001
host 10.10.80.93
nat (inside,outside) static interface service tcp 7001 7001
access-list acl_outside extended permit tcp any host 222.11.11.11 eq 7001
下面进行利用Jenkins进行操作流程
一、build开始构建
1、手动填入需要映射的内网IP和端口
2、外网显示的端口,需要注意端口冲突,配置中我已做冲突终止操作
二、实际配置
1、配置参数化构建过程
2、执行shell操作
#!/bin/bash
#防火墙增加端口映射
fire_addport(){ #####这里设定一个函数,下面会调用
expect <<EOF
spawn telnet 10.10.15.20 ####防火墙IP地址
expect "Username:"
send "adminr" ####防火墙I登录用户名
expect "Password:"
send "adminadminr" ######防火墙登录密码
send "enr" ######防火墙进入特权模式
expect "Password:"
send "adminadminr" ######防火墙登录密码
send "conf tr" ######防火墙进入配置模式
send "object network ${host_name}-${port_in}r"
send "host ${host_name}r"
send "nat (inside,outside) static interface service tcp ${port_in} ${port_out}r"
send "access-list acl_outside extended permit tcp any host 222.11.11.11 eq ${port_out}r"
send "exitr"
send "exitr"
send "exitr"
expect eof
EOF
}
#防火墙删除端口映射
fire_delport(){ #####这里设定一个函数,下面会调用
expect <<EOF
spawn telnet 10.10.15.20
expect "Username:"
send "adminr"
expect "Password:"
send "adminadminr"
send "enr"
expect "Password:"
send "adminadminr"
send "conf tr"
send "no access-list acl_outside extended permit tcp any host 222.11.11.11 eq ${port_out}r"
send "no object network ${host_name}-${port_in}r"
send "exitr"
send "exitr"
send "exitr"
expect eof
EOF
}
##########这里需要在Jenkins服务器创建一个文件写入已经开通的端口例如
#cat /App/jenkins-netdata/fireport_exist
#7002
#7003
case ${fire} in
fire_add)
#判断外网端口是否存在
cat /App/jenkins-netdata/fireport_exist|grep $port_out
if [ $? -eq 0 ]
then
echo "