我在主人上的 puppet.conf
[master]
certname = myname.mydomain.com
ca_server = myname.mydomain.com
certdnsnames = puppet;puppet.local;myname.dyndns.org;hivemind.local;
Run Code Online (Sandbox Code Playgroud)
根据我对 certdnsnames 定义的理解,以下应该有效:
puppet agent --server myname.dyndns.org --test
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
Run Code Online (Sandbox Code Playgroud)
如何避免这个错误?如何正确定义certdnsnames?我找到了不同的文档,但没有简单的例子。ii使用“,”作为分隔,我根本无法签名。我也看到过类似的语法
certdnsnames = puppet:puppet.intra.myserver.fr,puppet.myserver.fr:puppet,puppet:puppet,puppet.intra.myserver.fr,puppet.myserver.fr
Run Code Online (Sandbox Code Playgroud)
http://projects.puppetlabs.com/issues/5776
但对我来说,不清楚何时添加“木偶:”,何时不添加。
是否可以使用 puppet 2.7.18 将现有用户添加到组中?
我们有两个模块,每个模块定义一个类:
我们想将用户 foo 添加到模块“subversion”内的组 svn。
我已经尝试了现有功能请求中描述的成员资格参数:
group {
"svn":
ensure => present,
gid => xxxxx;
}
user {
"foo":
group => ["svn"],
membership => minimum;
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
错误:无法从远程服务器检索目录:服务器上的错误 400:重复声明:用户 [foo] 已在文件 /pathto/modules/subversion/manifests/init.pp 中的第 xx 行声明;无法在节点 myserver.example.com 上的 /pathto/modules/users/manifests/init.pp:xxx 重新声明
这个功能已经实现了吗?如果没有,有没有好的解决方法?
我开始在 centos 上使用 puppet,但对一些事情感到困惑。首先puppet-master,puppetmaster即使 /etc/init.d 中的守护程序是puppetmaster
运行命令$ puppet-master --version返回 bash: puppet-master: command not found。
我如何知道我正在为 master 和 client 运行哪个版本?
我在这里查找CFEngine、Puppet、Chef、bcfg2、AutomateIt以及其他任何可能存在的配置管理系统之间的一些比较,并且很惊讶我在 Server Fault 上发现的很少。例如,我只知道上面的前三个链接——另外两个是我在相关的谷歌搜索中找到的。
所以,我对人们认为最好的或者他们喜欢的不感兴趣。我想知道以下内容:
在我目前的工作场所,我负责管理两台 VMware 主机、一台 OpenBSD 物理机、三台 Debian 虚拟机和六台 Windows Server 虚拟机(2008/2012)。
我正在考虑实施配置管理工具,例如 Puppet 或 Chef。这是否合理,或者学习该工具的开销是否会超过收益?可管理性和实施成本之间的临界点在哪里?
默认情况下,Puppet 客户端每 30 分钟要求更新一次。我想改变这个间隔。最方便的方法是什么?
我即将开始一个新项目,该项目在一定程度上需要部署大约三个不同类的许多相同节点:
所有节点都将在 Ubuntu 10.04 实例上运行,但它们将安装不同的软件包。
我从以前的项目中对 Chef 有一些熟悉,尽管我不认为自己是专家。为了进行尽职调查,我一直在研究其他可能性。我们内部有很多人是 Puppet 的长期用户,他们鼓励我去看看。
不过,我无法评估这两种选择。Chef 和 Puppet 共享许多相同的领域术语——包、资源、属性等等,它们有共同的历史,源于对同一问题采取不同的方法。所以在某种意义上,它们非常相似。但是我找到的很多比较信息,比如这篇文章,都有些过时了。
如果你今天开始这个项目,你会问自己什么问题来决定你应该使用 Chef 还是 Puppet 进行配置管理?(注:我不想要回答这个问题:“我应该用厨师或木偶?”)
我使用 puppet 来安装当前的 JDK 和 tomcat。
package {
[ "openjdk-6-jdk", "openjdk-6-doc", "openjdk-6-jre",
"tomcat6", "tomcat6-admin", "tomcat6-common", "tomcat6-docs",
"tomcat6-user" ]:
ensure => present,
}
Run Code Online (Sandbox Code Playgroud)
现在我想补充
JAVA_HOME="/usr/lib/java"
export JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
到/etc/profile,只是为了解决这个问题。我还没有在文档中找到直接的答案。有没有推荐的方法来做到这一点?
一般来说,我如何告诉 puppet 将这个文件放在那里或修改那个文件?我将 puppet 用于单个节点(在独立模式下)只是为了尝试并保留服务器设置的日志。
我们有一个应用程序正在几个(5 个左右,并且会增长)机器上运行。所有机器的硬件都是相同的,理想情况下软件也是如此。到目前为止,我一直在手动管理它们,并且不想再(静态 IP 地址、禁用所有必要的服务、安装所需的软件包......)。任何人都可以平衡以下选项的利弊,或者提出更明智的建议?
1:在所有机器上单独安装centos并使用chef/cfengine/puppet管理配置。这会很好,因为我想要一个借口来学习使用其中一个应用程序,但我不知道这是否真的是最好的解决方案。
2:制作一个完美的盒子并对其进行成像。通过 PXE 提供映像,每当我想进行修改时,我只需从新映像重新启动这些框即可。集群人员通常如何处理诸如在 /etc/sysconfig/network-scripts/ifcfg* 文件中包含 mac 地址之类的事情?我们也使用infiniband,如果hwaddr错误,它也拒绝启动。这些可以在启动时正确生成吗?
我倾向于使用 PXE 解决方案,但我认为使用 munin 或 nagios 进行监控会更复杂一些。任何人都有这种类型的问题的经验?
所有服务器都装有固态硬盘,速度快且功能强大。
谢谢,马特。