我想通过分组机器(例如RH5和RH6机器)在nodes.pp中应用“DRY”(不要重复自己)原则,而不是为所有RH5和RH6服务器添加多行包含。 木偶在tst-01使用时工作正常: node "tst-01" inherits basenode { 但是当我试图用这种configuration将服务器组织成组时,它会中断: node "tst-01" inherits redhat6server { “inheritanceredhat6server”的错误是: err: Could not retrieve catalog; skipping run [root@tst-01 ~]# puppet agent –test err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template ldap/access.conf: Could not find value for 'netgroup' at 124:/etc/puppet/modules/ldap/templates/access.conf at /etc/puppet/modules/ldap/manifests/init.pp:82 on node […]
我可以写 include '::ntp' 或者我可以写 class { '::ntp':} 他们之间有什么区别,还是我需要两个?
虽然我知道我昨天面临的一个问题的直接解决scheme(感谢IRC #puppet的人们),但我仍然不明白它是如何解决问题的,或者说在这个特定的类和定义之间的根本区别是什么场景: 原来的定义,这是不正确的: define srv($name,$enable="true",$ensure="running",$provider="runit",$hasstatus="true",$hasrestart="true"){ exec {"sleep 5": path=>"/usr/bin:/usr/sbin:/bin:/sbin", before=>Service["$name"],} service{"$name": enable=>$enable, ensure=>$ensure, provider=>$provider, hasstatus=>$hasstatus, hasrestart=>$hasrestart, } } err:无法从远程服务器检索目录:SERVER上的错误400:重复的定义:Exec [sleep 5]已经在第4行的/etc/puppet/modules/common/manifests/defines/srv.pp文件中定义; 无法在节点testing.abc.def.com上的/etc/puppet/modules/common/manifests/defines/srv.pp:4中重新定义 正确的定义: define srv($enable="true",$ensure="running",$provider="runit",$hasstatus="true",$hasrestart="true"){ exec {"sleep 5 for $name": command=>"sleep 5", path=>"/usr/bin:/usr/sbin:/bin:/sbin", before=>Service["$name"],} service{"$name": enable=>$enable, ensure=>$ensure, provider=>$provider, hasstatus=>$hasstatus, hasrestart=>$hasrestart, } } 那么,为什么在第一种情况下的错误? 我如何复制一个定义,换句话说,如果有一个单一的模块使用这个定义,那么将有第一个定义工作? 也许它的文档中的傀儡术语让我感到困惑,但是写了大量的(工作)模块而不理解这个对我来说听起来很危险,希望我能得到一些明确的答案。
我正在寻找一个简短的文件,列出了由傀儡定义的不同types的资源,可能是一行或两行的说明。 属性的类似布局也是有意义的。 顺便说一句,我已经find这些文档,并寻找更简洁的东西。
我需要一个方法来传递给定的variables – 可以说thearch – 给一个给定的类中的几个不同的文件。 我需要能够为每个文件单独陈述这个variables的内容。 我已经尝试了以下内容: file { "xxx": thearch => "i386", path => "/xxx/yyyy", owner => root, group => root, mode => 644, content => template("module/test.erb"), } 这不会传递这个variables,所以我可以像我期望的那样在erb文件中使用<%= thearch%>语句。 我在这里做错了什么?
我是Puppet的新手,我想知道它是否是在Solaris和Linux上的补丁/包pipe理的有效解决scheme。 我对Solaris更感兴趣。 到目前为止,我无法find任何相关的文件。 我在哪里可以find如何处理这个文件?
我们希望减lesspipe理Windows服务器所需的时间。 几乎每个我们团队负责运行的服务器都运行Windows的一些变体,但由于历史原因,我们所关心的机器是混合平台:各种Windows版本的64位和32位变体。 我们有大约10台机器。 特别是,我们希望能够做得更快的活动包括: 清理临时文件和日志文件 临时重启 安装和卸载Windows软件包 很高兴(但不是必需的) 蒙托尔,启动和停止Windows服务 login/注销 蒙托什么盒子上的应用程序可能会做什么(例如一个长期运行的Excel表) 我听说Puppet是一个旨在帮助各种系统pipe理员自动化的工具 – 这个工具可能有助于满足上述任何要求吗? 据我所知,大多数Puppet用户是基于LINUX / UNIX的 – 甚至有可能在Windows环境下运行木偶主节点? 作为一个计划B-我可以写一些python脚本来完成上面列出的工作,并从Jenkins服务器调用它们。 我正在寻找什么样的build议来减less我们的pipe理时间。 谢谢 更新0 :如果我为一家大公司工作,这是一家不喜欢在任何东西上花钱的公司。 免费和开源解决scheme是首选。 无论我们使用什么软件,都必须经过法律许可,不需要花费任何代价 – 软件合规是一件大事。 如果是坏道,我们会find一个体积很大的方块,在VirtualBox(或类似的)中运行Ubuntu来运行主节点。
使用木偶,我想以受控的方式在我的(CentOS 5&6服务器)上更新软件包。 所以我不想使用ensure=>latest ,而是ensure=>3.0.1-1 。 例: class puppet::installation inherits puppet { package { "puppet": ensure => "3.0.1-1", } } 更新工作正常,但傀儡代理不断抱怨有一个区别: /Stage[main]/Puppet::Installation/Package[puppet]/ensure: current_value 3.0.1-1.el6, should be 3.0.1-1 (noop) 我可以通过将保证规则更改为3.0.1-1.el6来解决这个问题,但是在CentOS 5上却不行。 有没有一个简短/干净的方法来解决这个问题,或者我必须写入单独的,os释放相关的规则。 我一直在search解决scheme,但没有find任何有关这个问题。 任何build议或参考相关的例子,将不胜感激。
我对默认节点有一些困惑。 只有在没有其他节点定义的情况下才能应用在默认节点中定义的类,或者是否应用了默认节点和其他任何匹配的节点定义? 例如,我有一个Linux::Admins类,它指定属于wheel组的Linuxpipe理员。 我是否需要将该类复制到每个节点定义中,还是将其放入默认节点中,确保将其添加到明确定义的节点中? 我在默认节点上看不到太多的内容,你能指点我一些好的傀儡节点吗? 我使用木偶2.7。
我已经configuration了一个可以成功处理我的裸机服务器部署的工作补鞋机系统,我将使用puppet(当然,尽可能地与补鞋匠进行整合)来启动configurationpipe理问题。 看来在网上有一些稀疏的资源给予傀儡食谱在一个或多或less的完整集合,我问是否有人可以build议一个良好的testing傀儡配方,可以用作一个强大的起点点我可以build立我的自定义。 我正在寻找一些写得很好的东西,尽可能简单,以便可以维护,尽可能地处理服务器的“标准”configuration。 从这一点开始,我会写我的食谱,可能专门为了完全处理我的服务器的每一个方面已经存在的。 我的目标是拥有可以通过皮匠+木偶在几分钟内安全地格式化和重新安装的机器,无需人工交互。 提前致谢