我自我介绍,我叫安德烈。
最初的任务是-为Mikrotik创建数百个配置,在每个ovpn上引发一个证书,然后将配置上载到数百个Mikrotik配置,以及证书和密钥。
每个证书的密码是唯一的。 用手创建数百个配置是无济于事的,明天他们会告诉您进行新的配置,或者您想在Mikrotik上进行其他更改。
我想要实现的目标:
- 自动创建很多脚本;
- 自动将它们发送到我需要的设备上;
- 以确保他们能够正常工作,或者了解配置未正确执行。
使用Bash和FTP,一切顺利。
一点理论在RouterOS中,您可以自动执行脚本(您的脚本文件应类似于name.auto.rsc)。 通过FTP将文件上传到路由器后,将自动执行该文件,就像使用'/ import'命令一样(此方法仅适用于FTP)。
下载文件后,它将自动执行。 有关命令执行成功的信息记录在名称.auto.log中
AWK-类似C的脚本语言,用于根据指定的模式(正则表达式)逐行分析和处理输入流(例如,文本文件)。 可以在命令行脚本中使用。
Expect是Don Libes编写的Unix自动化和测试工具,是Tcl脚本语言的扩展,用于telnet,ftp,passwd,fsck,rlogin,tip,ssh等交互式应用程序。
首先,我制作了3个文件:
- 其中的List.txt文件记录了OVPN连接的名称(在我的情况下是商店的名称)和密钥的密码(由制表符分隔);
- sh1.sh-在list.txt +管道上使用逐行解析命令的bash文件;
- sh2.sh-一个bash文件,它使用Echo和变量创建一个配置文件并将其设置写入其中。
依此类推:
vi list.txt gamazin1 pass1 gamazin2 pass2 gamazin3 pass3
vi sh1.sh
vi sh2.sh
一个警告!
$ 1.crt和$ 1.key使用相同的list.txt预先创建了它们,因此文件名也是商店的名称。
创建了一百个配置。 现在我们需要使用相同的AWK和Expect + FTP发送它们。
创建4个文件:
- List2.txt文件-在其中存储Mikrotik IP数据| 登录| 密码 商店的名称。 用制表符分隔。
- newsh1.sh-在bash2.txt +管道上使用逐行解析命令的bash文件
- newsh2.sh-使用Expect程序包通过FTP发送我们的愿望,该程序包响应控制台请求。
- $ 1.auto.rsc-在我的情况下是配置文件,它们是从变量$ 1创建的,该变量是上一个脚本中商店的名称。 范例gamazin1.auto.rsc。
vi list2.txt 192.168.1.1 admin password1 gamazin1 192.168.2.1 admin password2 gamazin2 192.168.3.1 admin password3 gamazin3
vi newsh1.sh
Sudo apt-get install expect vi newsh2.sh
注意事项
首先,我们先发送带有密钥的证书,然后发送仅包含配置的证书(如果以相反的顺序发送,它将发誓没有这样的证书)。
像热蛋糕一样散布的配置和证书。 由于通过FTP命名为.auto.rsc,Mikrotik会自动将其驱入,并应用了我们的设置。
我们想知道到处都是超级,使用上面的配置我们更改了1行。
穿上 send \"get $4.auto.log\n\" # .log .rsc
我们将所有文件下载到首页并按文件排序,其中Mikrotik存在问题的文件大小为0字节。 通过文件名,您可以通过我们的文件list2.txt查找其IP。 在一个好的版本中,打开文件,您会看到“脚本文件已成功加载并成功执行”。
您也可以为这些文件编写脚本,但是我只需要按权重对文件进行排序。
我还编写了另一个脚本,所有关闭FTP的操作(反之亦然)之后,通过SSH打开。 刚将FTP更改为SSH以...
我们玩FTP /ip service set ftp disabled=yes
我尝试将所有内容一次推送到1个配置中,但是在命令末尾删除文件并没有得到结果;它无法删除接收此命令的文件。 仍然有细微差别。
最后...幸福! 您可以根据需要管理单个Mikrotik列表或一次管理所有列表。 现在,通过打开FTP并关闭,您可以发送命令并确保它们已完成。 但是我认为比FTP更方便,
SSH并没有中途失败 ,因为您可以通过在logs文件夹中确保一切正常。
在本文中,我展示了这些工具,但是您可以考虑如何自己使用它们...
我在Ubuntu 16.04上进行了所有操作。
关于Mikrotik的auto.rscAwk期待