我正在测试一个 puppet init.pp 文件(在 Windows 上),它看起来像:
class myclass {
package { 'java':
ensure => installed,
provider => 'msi',
source => 'S:\puppet-repo\jdk1.6.0_31.msi',
install_options => { 'INSTALLDIR' => 'C:\tools\java' },
}
}
Run Code Online (Sandbox Code Playgroud)
然后我的 site.pp 文件看起来像:
node default {
include myclass
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个只调用 myclass 模块的 tests/init.pp 文件:
class { 'myclass': }
Run Code Online (Sandbox Code Playgroud)
我可以运行 tests/init.pp 文件,它确实正确安装了 java。我想知道是否有一种方法可以从命令行运行 myclass 模块而无需创建单独的 tests/init.pp 文件。或者,也许我可以将package
myclass 中的语句移动到它自己的 .pp 文件中,并将其包含在 init.pp 中,然后如果我愿意,我可以运行该单独的 .pp 文件。什么是更正确的方法来做到这一点?
我在 Windows 7 上做了一些开发,我想标准化我们使用的各种工具(Java、maven 等版本)。我知道对于 *nix 平台,我可以使用 Chef 或 Puppet,但是是否有为此设计的工具适用于 Windows(我相信 Puppet 具有 Windows 服务器支持,但在 Windows 7 上没有保证)。
基本上,当团队中有新的开发人员或我们更新工具版本时,为开发人员提供一种简单的方法来更新他们的系统会很好。我想我可以编写批处理脚本来做到这一点,但我不知道是否有更成熟的 windows 工具集。
在 puppet.conf 中执行命令之前,有没有办法将消息打印到控制台?例如,假设我的清单有:
exec {
command => 'mycommandhere'
}
Run Code Online (Sandbox Code Playgroud)
我想打印一条消息,上面写着“运行我的命令”。除了在打印之前调用另一个命令之外,有没有一种简单的方法可以做到这一点?