fqdn 的 Puppet 事实不是 return 完全限定的域名
Puppet fact for fqdn doesn't return the fully qualified domain name
我设置了一个主机名,其中不包括提供给我的域名。然而,当它连接到我的人偶大师时,很多代码都失败了——最终我将其固定在 fqdn 事实中,没有返回完全限定的域名,而是返回了主机名。有没有办法解决?可能是 Puppet 中的错误配置或对代理的更改。
如果没有,我该如何解决?我应该创建一个新事实吗?在使用 fqdn 事实的任何地方查找并替换。
[root@a /]# hostname
a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f
a.long.hostname.with.lots.of.required.fields.areallongexample.com
[root@a /]# facter fqdn
a.long.hostname.with.lots.of.required.fields
[root@a /]# facter hostname
a
[root@a /]# facter domain
long.hostname.with.lots.of.required.fields
[centos@a ~]$ facter networking.fqdn
a.long.hostname.with.lots.of.required.fields
[centos@a ~]$ facter networking
{
dhcp => "192.168.0.2",
domain => "long.hostname.with.lots.of.required.fields",
fqdn => "a.long.hostname.with.lots.of.required.fields",
hostname => "a",
interfaces => {
eth0 => {
bindings => [
{
address => "192.168.0.2",
netmask => "255.255.255.0",
network => "192.168.0.0"
}
],
dhcp => "192.168.0.1",
ip => "192.168.0.2",
mac => "00:00:00:00:00:00",
mtu => 9001,
netmask => "255.255.255.0",
network => "192.168.0.0"
},
lo => {
bindings => [
{
address => "127.0.0.1",
netmask => "255.0.0.0",
network => "127.0.0.0"
}
],
ip => "127.0.0.1",
mtu => 65536,
netmask => "255.0.0.0",
network => "127.0.0.0"
}
},
ip => "192.168.0.2",
mac => "00:00:00:00:00:00",
mtu => 9001,
netmask => "255.255.255.0",
network => "192.168.0.0",
primary => "eth0"
}
I've set a hostname which excludes a domain name I've been provided with.
不,你没有。至少如果 hostname
输出正确地模拟了实际的系统配置。您为机器配置了一个主机名,该主机名表示 与给定的域名不同。
一个完全合格的域名由一系列由句点分隔的段组成 (.
)。第一段是特定于机器的名称,其余部分是域名。
配置机器使得 hostname
命令 returns 完全合格的域名是有效且常见的,我发现从 Puppet 的角度来看这最容易使用。有些人更喜欢配置 hostname
命令 returns 简单主机名,这也可以工作,前提是 dnsdomainname
命令 returns 完整域。
Facter 假设已经采用了这两种方法中的一种,但是您的 hostname
和 hostname -f
命令的输出显示您的机器配置不同。 hostname
returns 由于包含以句点分隔的段,因此看起来像 FQDN 的名称,但它不是计算机的 FQDN。这很可能不仅会给 Puppet 和 Facter 带来麻烦,这就是为什么 Facter 有理由假设机器没有按照您的方式配置。
您应该修复您的系统配置。如果机器的正确 FQDN 是 a.long.hostname.with.lots.of.required.fields.areallongexample.com
那么你应该设置那个或者简单地 a
作为它的主机名(它的含义)。这可能需要您转储当前的 Puppet 机器注册并使用新主机名重新注册。
我创建了一个名为 fqdn 的事实并更改了它的权重,它简单地运行 hostname -f。
我设置了一个主机名,其中不包括提供给我的域名。然而,当它连接到我的人偶大师时,很多代码都失败了——最终我将其固定在 fqdn 事实中,没有返回完全限定的域名,而是返回了主机名。有没有办法解决?可能是 Puppet 中的错误配置或对代理的更改。
如果没有,我该如何解决?我应该创建一个新事实吗?在使用 fqdn 事实的任何地方查找并替换。
[root@a /]# hostname
a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f
a.long.hostname.with.lots.of.required.fields.areallongexample.com
[root@a /]# facter fqdn
a.long.hostname.with.lots.of.required.fields
[root@a /]# facter hostname
a
[root@a /]# facter domain
long.hostname.with.lots.of.required.fields
[centos@a ~]$ facter networking.fqdn
a.long.hostname.with.lots.of.required.fields
[centos@a ~]$ facter networking
{
dhcp => "192.168.0.2",
domain => "long.hostname.with.lots.of.required.fields",
fqdn => "a.long.hostname.with.lots.of.required.fields",
hostname => "a",
interfaces => {
eth0 => {
bindings => [
{
address => "192.168.0.2",
netmask => "255.255.255.0",
network => "192.168.0.0"
}
],
dhcp => "192.168.0.1",
ip => "192.168.0.2",
mac => "00:00:00:00:00:00",
mtu => 9001,
netmask => "255.255.255.0",
network => "192.168.0.0"
},
lo => {
bindings => [
{
address => "127.0.0.1",
netmask => "255.0.0.0",
network => "127.0.0.0"
}
],
ip => "127.0.0.1",
mtu => 65536,
netmask => "255.0.0.0",
network => "127.0.0.0"
}
},
ip => "192.168.0.2",
mac => "00:00:00:00:00:00",
mtu => 9001,
netmask => "255.255.255.0",
network => "192.168.0.0",
primary => "eth0"
}
I've set a hostname which excludes a domain name I've been provided with.
不,你没有。至少如果 hostname
输出正确地模拟了实际的系统配置。您为机器配置了一个主机名,该主机名表示 与给定的域名不同。
一个完全合格的域名由一系列由句点分隔的段组成 (.
)。第一段是特定于机器的名称,其余部分是域名。
配置机器使得 hostname
命令 returns 完全合格的域名是有效且常见的,我发现从 Puppet 的角度来看这最容易使用。有些人更喜欢配置 hostname
命令 returns 简单主机名,这也可以工作,前提是 dnsdomainname
命令 returns 完整域。
Facter 假设已经采用了这两种方法中的一种,但是您的 hostname
和 hostname -f
命令的输出显示您的机器配置不同。 hostname
returns 由于包含以句点分隔的段,因此看起来像 FQDN 的名称,但它不是计算机的 FQDN。这很可能不仅会给 Puppet 和 Facter 带来麻烦,这就是为什么 Facter 有理由假设机器没有按照您的方式配置。
您应该修复您的系统配置。如果机器的正确 FQDN 是 a.long.hostname.with.lots.of.required.fields.areallongexample.com
那么你应该设置那个或者简单地 a
作为它的主机名(它的含义)。这可能需要您转储当前的 Puppet 机器注册并使用新主机名重新注册。
我创建了一个名为 fqdn 的事实并更改了它的权重,它简单地运行 hostname -f。