我写了一个模块,它使用puppet在/etc/rsyslog.d/60-custconfig.conf中为rsyslog写入configuration。 当我添加模块到节点,它的工作原理,但如果我删除评论或删除节点中的模块调用,是否应该删除该文件? 如果没有,有没有办法回滚configuration或安装?
我有一本“ 傀儡string ”(2007年写的),但考虑到它有一堆模棱两可的语言,我想知道自那以后有多less变化? 我已经在语言教程的顶部find了这个发行注记页面和一个(简短的)夏季表格,但是都没有date,所以我不知道从哪里开始(以及更详细的注释使得干燥的阅读更加容易)。 有没有人知道一个页面,列出自从该书出版后已经改变了的东西?
如何使用facter和puppet来确定操作系统是运行Cent 6.x还是Cent 5.x? facter operatingsystemrelease 6.4 我只关心主要版本(6) 我想过使用awk,但是一定有更好的方式,更加“傀儡体现”友好。 #This works, but is ugly trying to use this in a puppet manifest facter operatingsystemrelease |awk -F. '{print $1}' 6 更新 : 看起来新版本的facter有一些关于主要版本的附加信息,这些信息不在我的版本中。 我最初的供应需要假设因素已经过时。 facter –version 1.6.4 puppet –version 2.7.20 我尝试使用以下命令search可能会显示主要版本的任何其他事实 facter |grep 6
我在networking工程SE网站上发布了这个问题,但是确定是closures主题….等等。 我正在玩弄使用puppet进行核心networking设备configuration的想法,以提高我的团队正在生成的configuration的准确性。 我想先创build一个演示,然后学习更多关于木偶如何工作的知识。 我在我们的团队networking实用程序节点(一个Ubuntu 12.04 LTS VM)上安装了puppet,并在〜user / .puppet / device.conf中configuration了一个设备,它看起来像…. [XX-core01.XXX.local] 键入cisco url ssh:// user:[email protected]/ 我跑了傀儡设备 – 发烧,并颁发了证书。 但一旦我做了,我得到一个错误,我无法find任何有关的信息。 info:开始将configuration文件应用于XX-core01.XXX.local,位于ssh:// user:[email protected]/ info:为XX-core01.XXX.local创build一个新的SSL密钥 info:ca的caching证书 info:为XX-core01.XXX.local创build一个新的SSL证书请求 info:证书请求指纹(md5):18:B8:55:F9:A0:F6:8E:A3:F5:53:59:87:4C:00:48:23 info:XX-core01.XXX.local的caching证书 info:为ca。cachingcertificate_revocation_list err:无法检索本地事实:nil:NilClass的未定义方法“捕获” 任何人都可以指向正确的方向吗? 另外,是否有可能使用木偶“行走”设备? 我有兴趣了解哪些选项可以在我的不同设备上configuration。 谢谢!
我试图确定是否可以在networking设备(交换机,防火墙等)上运行Puppet。 从阅读在线文档后我可以看出,Puppet Enterprise将迎合这样的设备。 基本上,我被问到在networking空间内是否可以用傀儡做任何事情。 我们没有预算来购买商业产品,所以我们希望开源版本能够提供帮助。
我在Puppet master syslog中反复得到以下内容: Sep 27 11:52:05 puppet1 puppet-master: Not collecting exported resources without storeconfigs Sep 27 11:52:06 puppet1 puppet-master: Not collecting exported resources without storeconfigs Sep 27 11:52:06 puppet1 puppet-master: Not collecting exported resources without storeconfigs 我实际上没有使用storeconfigs: [ashinn@puppet1 ~]$ cat /etc/puppet/puppet.conf [agent] server = puppet.mydomain.com environment = production report = true [main] logdir = /var/log/puppet […]
我有一个Puppet类,它设置了许多服务和configuration文件。 在大多数情况下,可以使用默认服务器,但也可以configuration显式的每服务器服务器。 我发现自己一直在这样做: class myclass ( $default_server = 'server.example.com', $server_for_thing1 = undef, $server_for_thing2 = undef, $server_for_thing3 = undef ) { if $server_for_thing1 { $real_server_for_thing1 = $server_for_thing1 } else { $real_server_for_thing1 = $default_server } # …and so forth… } 随着可能服务数量的增长,这种语法变得笨拙。 有没有更好的方法来做到这一点? 我真的想要一些东西: $server_for_thing1 = $server_for_thing1 || $default_server …但variables不能在Puppet中重新分配。 有没有更好的方法来做到这一点?
有没有一个选项来设置节点保持(设置为noop),在傀儡主方? 我正在寻找像下面的例子中的设置。 每个有一个名为noop的variables在其定义中设置为true的节点将不会被更新。 所以example1.node.com在多个puppet客户端运行后将不会有test1文件,但是example2.node.com将拥有该文件。 有这样的select吗? 另一种方法是否存在? (当然,我可以简单地添加一个“_”到节点名称,它会停止匹配。我正在寻找官方的方式。 node "example1.node.com" { $noop = true file { "/root/test1": content => "test", ensure => present, } } node "example2.node.com" { file { "/root/test1": content => "test", ensure => present, } }
我试图让Puppet升级我们的Varnish 3服务器到Varnish 4,这是一个重要的更新,需要一个更新的configuration文件,否则将无法启动。 这是在Ubuntu 12.04上。 Varnish模块基本上是由这些类和依赖项构build的: Class['varnish::repo'] -> Class['varnish::install'] -> Class['varnish::tools'] -> Class['varnish::config'] ~> Class['varnish::service'] 我已经更新了varnish::repo的Apt-repo URL,在varnish::install设置ensure=>latest ,并向varnish::config提供了一个更新的configuration文件。 到现在为止还挺好。 当Puppet运行这些依赖关系时,在varnish::install阶段运行失败,因为Apt尝试在升级后立即重启Varnish守护进程,而不是让Puppet有机会replaceconfiguration文件。 varnish::install类中的失败会导致依赖关系链中断,并导致其余的类也失败。 结果是需要手动恢复的一个损坏的Varnish安装。 你怎么处理这个? 我想过使用policy-rc.d ,它基本上告诉Apt不要执行自动停止和服务启动。 我试图在升级之前创build文件,然后将其删除。 file {'/usr/sbin/policy-rc.d': ensure => $ensure, content => "#!/bin/sh\nexit 101", owner => 'root', group => 'root', mode => '0755', } 当然创build和删除是一个问题,因为Puppet把这看作是一个重复的资源。 为什么我想再次删除策略,只需要安装它,你问? 因为我们使用unattended-upgrades来执行较小的安全升级,我想在这种情况下允许自动服务重新启动,而不是在这种情况下。 此外,policy-rc.d会影响所有的服务,而不仅仅是Varnish。 也许我正在考虑这个错误,但我可以告诉Puppet或Apt等待重启,直到configuration文件被replace?
我们有一个应用程序,其中生成命名pipe道(typesp)。 我们想要pipe理Puppet产生pipe道的目录的其他文件。 有没有简单的方法告诉木偶跳过这种types的文件。 我可以忽略几个文件,如下所示: file {'/var/opt/OV/share/tmp': ensure => directory, recurse => true, # enable recursive directory management owner => user, group => group, mode => 2775, ignore => 'ovcd.*', } 但正如我所说,我不能确定如何预先命名pipe道。 我应该很喜欢忽略=>键入p或类似的东西。 这可以在Puppet中完成吗? 我结束了: exec { "set_perms_tmp": command => '/usr/bin/find /var/opt/OV/tmp ! \( -type s -o -type p \) -exec chmod 2775 {} \; -exec […]