Puppet-确定另一个主机是否可以访问?

Puppet-确定另一个主机是否可以访问?

如果托管系统中没有可用的主机和端口,是否有任何现成的方法/自定义事实/等可以让 Puppet 做出不同的响应?

例如,我有一些产品使用多个目录来读取用户信息。

通常,我希望最快和最近的服务器列在最前面。如果不可用,我希望我的模块能够重写配置文件以转到列表中较低的条目。

答案1

那么这是通过模板中的配置变量来交换某些东西吗?

我认为最好的方法是用 Ruby 编写一个自定义事实来执行速度和可达性测试,然后使用该自定义事实在模板中设置字符串。这对您的用例来说合理吗?

答案2

看看 puppet 的 stdlib。它允许您将自定义数据或脚本放入/etc/facter/facts.d描述)。

因此,您可以使用一个小脚本来/etc/facter/facts.d/neighbour.sh添加新变量facter -p

#! /bin/sh

if ping -nc 1 dirserver.fnqd > /dev/null; then
  echo 'dirserver_available=true'
else
  echo 'dirserver_available=false'
fi

通过一些脚本,您可以按延迟顺序添加自定义事实dirserver_1,例如等。dirserver_2

相关内容