Articles of 傀儡

木偶有条件包括基于selinux其实不行

我在一个模块中有一个类: # File: modules/selinux/tools.pp class selinux::tools { $packages = ['policycoreutils-python',] package { $packages: ensure => installed } } 那么,我的默认节点: # File: manifests/nodes/default.pp node default { if $selinux { include selinux::tools } } 我重新启动puppet puppetmaster和puppet代理人。 但是,即使selinux事实是错误的,程序包也会安装在节点中: $ facter -p selinux false 我在这里错过了什么?

puppet-dashboard:无法从清单服务中检索事实

我正在尝试configurationpuppet-dashboard,并且遇到Inventory / facts的问题: Could not retrieve facts from inventory service: 403 "Forbidden request: puppetmasterhostname(ip.address.was.here) access to /facts/agenthostname.example.com [find] at line 99 " 在puppet master的/etc/puppet/auth.conf中: path /facts method find auth any allow * 我重新启动了木偶大师和傀儡仪表,但是我仍然得到了上述错误。 任何想法或疑难解答提示? UPDATE 我正在运行木偶v2.7.13。 按照要求,这是我的完整的/etc/puppet/auth.conf。 其中大部分是已经在configuration中的默认值: # allow nodes to retrieve their own catalog (ie their configuration) path ~ ^/catalog/([^/]+)$ method find allow […]

如何在Puppet脚本的sed命令中转义“/”?

在configuration文件中,我试图用PREFIX=/foobarreplacePREFIX=/jenkins 。 在(bash)命令行上,这工作正常: sed -i.bak s/PREFIX=\\/jenkins/PREFIX=\\/foobar/g /etc/default/jenkins 但是,在Puppet脚本(.pp文件)中: exec { 'Change-prefix': command => "sed -i.bak s/PREFIX=\\/jenkins/PREFIX=\\/foobar/g /etc/default/jenkins", path => ["/bin"], } 生产: err: /Stage[main]//Exec[Change-prefix]/returns: change from notrun to 0 failed: sed -i.bak s/PREFIX=\/jenkins/PREFIX=\/foobar/g /etc/default/jenkins returned 1 instead of one of [0] 如何正确地逃避sed命令? 或者是其他事情? 我也用\\\/尝试,但是这样产生: warning: Unrecognised escape sequence '\/'

木偶不签署证书

我已经为puppet构build了一个testlab,但是它不起作用。 我在节点上启动puppet agent ,并等待证书。 root:~# puppet agent –server xxxx –waitforcert 60 –test warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session 在服务器上,现在发现挂起的证书请求: root:~# puppet cert –list root:~# 在masterhttpd日志中: root:~# tail /var/log/puppet/masterhttp.log [2012-01-06 09:19:17] xxx […]

Puppet在安装“lsscsi”时删除软件包

我们想在我们所有的Linux服务器上安装“lsscsi”软件包,并为它build立一个清单: # pack_lsscsi.pp class common::pack_lsscsi { case $operatingsystem { RedHat, CentOS, Debian: { package { 'lsscsi': ensure => 'installed', } } } } “lsscsi”包只有“libc6”作为依赖关系,所以根本不用理会。 我们的Red Hat和CentOS服务器一切正常,但是一些Debian系统却疯狂了。 木偶之间的10和180包之间删除,就像这一个: Sep 17 10:46:06 cacti01 puppet-agent[28008] (/Stage[main]/Common::Pack_lsscsi/Package[lsscsi]/ensure) change from purged to present failed: Execution of '/usr/bin/aptitude -y -o DPkg::Options::=–force-confold install lsscsi' returned 255: Reading package lists…#012Building dependency tree…#012Reading state […]

使用木偶语法的hiera数据源?

docs.puppetlabs.com上的hiera文档似乎给我的印象是,我可以使用puppet语法来描述我的数据。 或者将来会有可能。 见: Coming soon 。 这个function是否存在于puppet的发布版本中,而没有logging,或者这个function还在开发中? 如果这个function存在,有没有人有如何实际使用这个例子? 在我的系统上存在puppet_backend.rb文件给出了哪些是puppetmaster包的一部分,这使得我的function是存在的,但只是没有logging。 所以我想弄清楚如何实际使用这个。

我如何使用Puppet来强制本地组成员身份?

从Ask @ PuppetLabs交叉发布。 (那里根本没有足够的stream量。) 我已经看到了许多使用Augeas将用户添加到%wheel的示例。 这些都是同一件事的变化。 在最后插入一个用户节点。 快速提示:使用augeas将用户添加到组 如何使用Puppet和Augeas在Linux中pipe理configuration 木偶组pipe理模块 我需要做的还是删除在configurationpipe理之外添加的用户。 对于Puppet来pipe理组,只有在我的Puppet类中定义的用户应该出现,其他人都被删除。 看起来像执行一个简单的sed命令会容易得多,但是有那么多人说要尽量远离exec。 在这种情况下这是一个不好的解决scheme吗?

Redis重新加载configuration更改,而不重新启动服务

当我通过puppet更改redisconfiguration时,除了重新启动redis服务之外,还有更好的方式来加载configuration吗?

为什么我的傀儡variables不是由Vagrant的puppet.facter选项分配的?

鉴于以下configuration在我的Vagrantfile中: puppet.facter = { 'variableOne' => 'one', 'variableTwo' => 'two' } …以下是清单: notify{ "Got here with ${variableOne} and ${variableTwo}":} 当我运行vagrant up (或vagrant provision如果已经),我看到输出中的以下行: ==> default: Notice: Got here with and 而当我join了对stream浪的命令的嘲弄之后,我在输出中也看到了这一点: ==> default: Running Puppet with default.pp… DEBUG ssh: Re-using SSH connection. INFO ssh: Execute: FACTER_variableOne='one' FACTER_variableTwo='two' puppet apply –verbose –debug –manifestdir /tmp/vagrant-puppet-3/manifests –detailed-exitcodes /tmp/vagrant-puppet-3/manifests/default.pp […]

puppetrun不报告客户端错误

puppetrun不会报告我的傀儡客户遇到的错误。 例如,如果我把乱码写入site.pp并运行puppetd ​​ – 在客户端testing,我得到一个错误。 如果我在puppettrun上运行puppettrun,它说客户端退出代码0。经过一番调查后,我发现puppetrun不会说更新是好还是坏。 那么我的问题就是 – 如果我用puppetrun来推销客户的变化,是否有一个快速简单的方法来判断客户是否发生了错误?