如何在Puppet中访问应用程序级变量
我知道这个问题可以解释,所以我会问具体的问题 我利用Puppet来检查一些应用程序级别的变量和设置。我遇到的问题是,这些变量中有很多都不是在事实中设置的,比如operatingsystem、hostname、ipaddress等。然后,我很难找到如何利用puppet来创建变量来执行操作 例如,我有一些服务器正在运行不同版本的应用程序,因此我需要能够确定服务器上运行的是哪个版本我该怎么做? 我的第一个想法是,由于标准事实列表中没有提供这些事实,我应该创建我自己的事实,我可以利用这些事实,因此我正在做以下事情:如何在Puppet中访问应用程序级变量,puppet,Puppet,我知道这个问题可以解释,所以我会问具体的问题 我利用Puppet来检查一些应用程序级别的变量和设置。我遇到的问题是,这些变量中有很多都不是在事实中设置的,比如operatingsystem、hostname、ipaddress等。然后,我很难找到如何利用puppet来创建变量来执行操作 例如,我有一些服务器正在运行不同版本的应用程序,因此我需要能够确定服务器上运行的是哪个版本我该怎么做? 我的第一个想法是,由于标准事实列表中没有提供这些事实,我应该创建我自己的事实,我可以利用这些事实,因此我正在
module_name
|
|---manifests
|---files
|---examples
|---facts.d
|---script.sh
在my script.sh中,我正在执行linux命令以从应用程序中获取变量。然后在格式中重复它们
key=value
因此,在存储应用程序版本的位置,我会找到该位置,然后回显该版本。然后在运行时,我可以使用$app\ver之类的变量来进行特定的配置更改。比如
app_ver=1.0.8
java_ver=1.7
是,否,是:pluginsync发生在catalog comp之前[I选项,是:您的服务器可能安装了不同版本的应用程序。因此,基本上您希望在应用puppet module的服务器上安装特定应用程序的版本?是的,以及其他内容。例如,不同版本的应用程序运行不同版本的java。根据java版本,我希望请确保基于该版本的特定设置。请小心,@AtmeshMishra.Puppet函数在构建目录的计算机上的目录构建期间运行。因此,您不能使用
generate()
正如您所描述的,与master/agent Puppet设置一起使用,因为在这样的环境中,目录是建立在master上的,而不是建立在目标机器上的。@AtmeshMishra,事实就是这样做的。具体来说,尽管您可以使用基于Ruby的自定义事实来实现,但更简单的外部事实方法非常适合于此参与者用户作业。是,否,是:插件同步发生在目录编译之前[I选项,是:您的服务器可能安装了不同版本的应用程序。因此,基本上您希望在应用puppet module的服务器上安装特定应用程序的版本?是的,以及其他内容。例如,不同版本的应用程序运行不同版本的java。根据java版本,我希望请确保基于该版本的特定设置。请小心,@AtmeshMishra.Puppet函数在构建目录的计算机上的目录构建期间运行。因此,您不能使用generate()
正如您所描述的,与master/agent Puppet设置一起使用,因为在这样的环境中,目录是建立在master上的,而不是建立在目标机器上的。@AtmeshMishra,事实就是这样做的。具体来说,尽管您可以使用基于Ruby的自定义事实来实现,但更简单的外部事实方法非常适合于此参与者这是一份很好的工作。