当主机文件具有非标准位置时,如何清除非托管主机条目?

时间:2019-06-11 15:47:22

标签: puppet hosts

我正在使用资源托管。在我的实验中,如果宿主资源使用的是非标准目标,则资源类型“资源”没有任何影响。

resources { 'host':
  purge => true,
}

host { 'localhost.localdomain':
  ip           => '127.0.0.1',
  target       => '/chroot/etc/hosts',
}

当我使用目标/ etc / hosts并删除主机资源或将其重命名时,输出为:

Info: Applying configuration version '1560267493'
Notice: /Stage[main]/Profile:abc:Hosts/Host[localhost.localdomain]/ensure: removed
Info: Computing checksum on file /etc/hosts
Notice: /Stage[main]/Profile::abc:Hosts/Host[localhost.localdomain]/ensure: created

当我使用非标准目标时,例如/ chroot / etc / hosts没有任何反应。 (如果我重命名该条目,那么只会创建另一个主机条目)

另一个奇怪的行为是,当代理节点上没有/ etc / hosts文件时,将引发错误:(即使我使用的是其他目标。) 错误:找不到适合主机的提供商

版本:Puppetserver:5.3.8,Puppet代理:4.10.8

1 个答案:

答案 0 :(得分:1)

  

我正在使用资源托管。在我的实验中,如果宿主资源使用的是非标准目标,则资源类型“资源”没有任何影响。

这并不奇怪。 resources资源类型只能清除指定资源类型“预取”的资源实例。对于Host资源类型,这是记录在默认主机文件中的主机。这是记录的限制的原因,Resources无法清除类型ssh_authorized_key。为此,对于其他目标文件中的主机,Puppet无法识别您要清除的资源。

  

另一个奇怪的行为是,当没有/ etc / hosts文件时   代理节点抛出错误:(即使我使用的是其他   目标。)错误:找不到适合主机的提供程序

我会认为是一个错误。您可以考虑使用filing a ticket