class Construqt::Flavour::Mikrotik::Host
Public Class Methods
header(host)
click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 207 def self.header(host) host = host.delegate host.result.add(<<TESTNAME, nil, "system", "identity") { :local identity [get] :if (($identity->"name") != "#{host.name}") do={ :put "Execute /system identity set name=#{host.name}" :error ("The Script is for router #{host.name} this router named ".($identity->"name")) } else={ :put "Configure #{host.name}" } } TESTNAME host.result.render_mikrotik_set_direct({ "name"=> Schema.identifier.required.key }, { "name" => host.name }, "system", "identity") host.result.render_mikrotik_set_direct({ "time-zone-name"=> Schema.identifier.required.key }, { "time-zone-name" => host.time_zone||'MET' }, "system", "clock") dns = host.region.network.dns_resolver.nameservers.ips host.result.render_mikrotik_set_direct({"servers"=>Schema.addresses.required.key }, { "servers"=> dns }, "ip", "dns") host.result.add("add", nil, "tool", "graphing", "interface") host.result.add("set [ find name!=ssh && name!=www-ssl ] disabled=yes", nil, "ip", "service") host.result.add("set [ find ] address=0::/0", nil, "ip", "service") host.result.add("set [ find name!=admin ] comment=REMOVE", nil, "user") host.result.render_mikrotik({ "name" => Schema.identifier.required.key, "enc-algorithms" => Schema.identifier.default("aes-256-cbc"), "lifetime" => Schema.interval.default("00:01:00"), "pfs-group"=> Schema.identifier.default("modp1536") }, {"name" => "s2b-proposal"}, "ip", "ipsec", "proposal") host.result.add("", "default=yes", "ip", "ipsec", "proposal") host.result.add("", "template=yes", "ip", "ipsec", "policy") host.result.add("", "name=default", "routing", "bgp", "instance") host.result.add_remove_pre_condition('comment~"CONSTRUQT\$"', "ip", "address") host.result.add_remove_pre_condition('comment~"CONSTRUQT\$"', "ip", "route") host.result.add_remove_pre_condition('comment~"CONSTRUQT\$"', "ipv6", "address") host.result.add_remove_pre_condition('comment~"CONSTRUQT\$"', "ipv6", "route") host.region.users.all.each do |u| host.result.add(<<OUT, nil, "user") { :local found [find name=#{u.name.inspect} ] :if ($found = "") do={ add comment=#{u.full_name.inspect} name=#{u.name} password=#{host.region.hosts.default_password} group=full } else={ set $found comment=#{u.full_name.inspect} } } OUT end host.result.add("remove [find comment=REMOVE ]", nil, "user" ) host.result.add("set [ find name=admin] disable=yes", nil, "user") end
new(cfg)
click to toggle source
Calls superclass method
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 200 def initialize(cfg) super(cfg) end
Public Instance Methods
build_config(host, unused)
click to toggle source
# File lib/construqt/flavour/mikrotik/flavour_mikrotik.rb, line 266 def build_config(host, unused) ret = ["# host"] end