小编KAR*_*ván的帖子

OSX 上的多播主机名查找

我的 OSX 计算机上的主机名查找有问题。根据 Apple 的HK3473文档,它针对 v10.6 说:

默认情况下,除本地外仅包含一个标签的主机名(例如“My-Computer.local”)使用多播 DNS (Bonjour) 进行解析。默认情况下,除本地之外还包含两个或多个标签的主机名(例如“server.domain.local”)使用 DNS 服务器进行解析。

这在我的测试中是不正确的。如果我尝试在本地计算机上打开与远程端口的连接:

telnet example.domain.local 22
Run Code Online (Sandbox Code Playgroud)

然后它将使用和查找旁边的多播 DNS查找 IP 地址。这会导致每次查找都有两秒的查找超时。这是很多!AAAAA

当我只尝试使用 IPv4 时,它不会使用多播查询来获取远程地址,只是简单的A查询。

telnet -4 example.domain.local 22
Run Code Online (Sandbox Code Playgroud)

当我仅尝试使用 IPv6 时:

telnet -6 example.domain.local 22
Run Code Online (Sandbox Code Playgroud)

然后它将再次使用多播 DNS 进行查找,并且 AAAA再次发生 2 秒超时延迟。

我试图为我的/etc/resolver/domain.local, 和创建解析器条目/etc/resolver/local.1,但它们都不起作用。

有什么方法可以为“向本地添加两个或多个标签”域禁用此多播查找,或者只是为选定的子域 (domain.local) 禁用它?

谢谢!

更新 #1

感谢 @mralexgray 的scutil --dns命令,现在我可以在列表中看到我的域,但顺序晚了:

DNS configuration

resolver #1
  domain : adverticum.lan
  nameserver[0] : 192.168.1.1
  order …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ipv6 multicast mac-osx ipv4

7
推荐指数
1
解决办法
4164
查看次数

有没有办法在人偶模块中使用数组(不是在模板中)?

我想使用 puppet 来管理一个 hadoop 集群。在机器上,我们有几个必须创建和设置权限的目录。

但我无法为定义的方法添加数组值。

define hdfs_site( $dirs ) {
    file { $dirs:
        ensure => directory,
        owner => "hadoop",
        group => "hadoop",
        mode  => 755;
    }

    file {
        "/opt/hadoop/conf/hdfs-site.xml":
            content => template("hdfs-site.xml.erb"),
            owner   => "root",
            group   => "root",
            mode    => 644;
    }
}

define hadoop_slave( $mem, $cpu, $dirs ) {
    hadoop_base {
        mem => $mem,
        cpu => $cpu,
    }

    hdfs_site {
        dirs => $dirs,
    }
}
Run Code Online (Sandbox Code Playgroud)

hadoop_base类似于hdfs_site.

编辑

错误消息是:

无法解析环境生产:所有资源规范都需要名称;/etc/puppet/modules/hadoop/manifests/init.pp:52 处的预期“%s”

这是$dirshadoop_slave

configuration puppet hadoop

2
推荐指数
1
解决办法
3091
查看次数