Конфиг для Mikrotik с помощью make config

Матеріал з NoDeny
Версія від 12:42, 25 листопада 2019, створена Sv (обговорення | внесок) (Новая страница: «Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl: <pre> ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4<< EOF /ip dhcp-server lease remo…»)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон /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;
            },
},