我的 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 地址。这会导致每次查找都有两秒的查找超时。这是很多!A
AAAA
当我只尝试使用 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) 我想使用 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”
这是$dirs
行hadoop_slave