【发布时间】:2023-03-18 16:13:01
【问题描述】:
我正在学习 puppet,我遇到了我认为是一个非常基本的问题。为了简单起见,我使用的是 puppet forge 模块,而不是任何自定义编写的模块。这是我正在使用的版本:
傀儡服务器:5.1.3
傀儡代理:5.3.2
puppetlabs-java: 2.1.0
当我安装 puppetlabs-java 模块时,我使用的是--modulepath /etc/puppetlabs/code/modules/。
我目前已将代理配置为指向我的 puppet 服务器和我命名为 example 的环境。
目前的环境是这样的:
├── environment.conf
├── hiera.yaml
├── manifests
│ └── init.pp
└── modules
└── java.pp
我没有对environment.conf 和hiera.yaml 做任何事情,它们目前是默认值。我的init.pp 包含:
node 'node1' {
}
node 'node2' {
}
我的 java.pp 包含:
class { 'java':
distribution => 'jre',
}
我的问题有两个。如果我将 java.pp 放在清单文件夹中,它会将 java 应用于两个节点,无论我是否在任一节点中调用了 include java。如果我将include java 放在任一节点上,它可以正常工作,一个节点将获得java 而另一个不会,但它似乎不尊重我在java.pp 中的任何设置。如何使用 java.pp 文件中的自定义设置仅将 java 安装到 node1?
【问题讨论】:
-
这是一个宽泛的问题,但对于初学者来说,为了帮助您缩小问题的重点,请将您的
init.pp重命名为site.pp,并且不要在该目录中放置任何其他清单。接下来阅读有关 dir envs 的信息:puppet.com/docs/puppet/5.3/environments_about.html。然后阅读有关模块/类的信息:puppet.com/docs/puppet/5.3/modules_fundamentals.html。这将帮助您解决组织和代码问题并继续前进。
标签: puppet