Конфиг для Mikrotik с помощью make config
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl:
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4<< EOF /ip dhcp-server lease remove [find comment=nodeny] {% for user in users %} {% eval i = 0 %} {% for ip in user.ips %} {% if user.mac.[i] %} /ip dhcp-server lease add address={{ip.ipa}} mac-address={{user.mac.[i]|pretty_mac}} address-list=goodboys comment=nodeny {% eval i = i + 1 %} {% endif %} {% endfor %} {% endfor %} EOF
/usr/local/nodeny/kernel/make_config_mikrotik.cfg:
run => 0, period => 60, template => { 'mikrotik.tmpl' => { # куда будет записан сформированный конфиг file => '/tmp/mikdhcp.sh', # системная команда, которая будет выполнена перед записью конфига, можно '' cmd_before => 'sh /tmp/mikdhcp.sh >/dev/null 2>/dev/null', # системная команда, которая будет выполнена после записи конфига, можно '' cmd_after => '', # удалять пустые строки pretty => 1, }, }, subs => { pretty_mac => sub { my $mac = shift; $mac =~ s/(..)/$1:/g; chop $mac; return $mac; }, },