我正在通过示例学习 Puppet,并编写一些模块来管理我们当前的 RHEL 和 Ubuntu 服务器。我的第一个认真尝试是 Zend Server 模块。
由于 Puppet 有 Yumrepo,但没有 Aptrepo 资源,您将如何构建一个模块来添加 repo 并以独立于发行版的方式安装软件包?使用该模块的人不必关心服务器运行的是哪个发行版。
还有一件事。我想让 Puppet 在安装后设置 ZS 管理员密码,但找不到密码设置在哪里。有什么想法吗?
答案1
就像是:
class usefulclass {
if $operatingsystem == "RHEL" {
repo { ...
before => Package["zend"] }
} else {
file { "sources.list"... //or however you choose to manage sources.list
before => Package["zend"] }
}
}
手边没有 RHEL 盒子,但只需运行facter operatingsystem
即可找出要查找的返回值是什么。
答案2
我自己才刚刚开始检查 Puppet,但我确实查看了文件:/usr/local/zend/bin/gui_passwd.sh
它会更改该密码(如果您忘记了原始密码,它就在那里)。
在脚本的底部,它将 MD5 密码放入文件中:/usr/local/zend/gui/application/data/zend-server-user.ini
,尽管它必须使用“sed”来编辑该文件。