Articles of 木偶

使用木偶仪表板作为一个enc

0最喜欢的 我正在使用在不同服务器上运行的puppet仪表板的多个puppet master设置。 我也configuration仪表板使用HTTPS与乘客运行。 我想把木偶仪表盘转到ENC。 我已经在每个木偶大师上设置了以下configuration(请原谅链接中的空格): node_terminus = exec external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// puppet-dashboard /usr/share/puppet-dashboard/bin/external_node 我编辑了external_node ruby​​脚本,并为仪表板指定了https URL,但是我在puppet节点上得到了这个错误: Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node ukserver0028.domain.net: Failed to find ukserver0028.domain.net via exec: Execution of '/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net' returned 127: Error: Could not retrieve catalog; […]

如何在Puppet中授予PostgreSQL的全局权限?

puppetlabs的官方postgresql模块允许授予特定数据库的权限。 postgresql::database_grant{'grant to myuser': privilege => 'CREATE', db => 'app_production', role => 'myuser', } 这将执行: GRANT ${privilege} ON database ${db} TO ${role}; 不过,我想对给定的用户执行对全局权限的查询: ALTER role myuser login createdb; 有没有办法如何做到这一点? 还是应该为PostgreSQL使用不同的puppet模块?

如何循环访问puppet节点定义中的条目

有人可以帮我理解我怎么可以通过我的模板文件中的以下节点定义循环? ip::addr{ "as2s67v": ip0 => "192.168.30.0", pre0 => "/24", ip1 => "172.45.35.0", pre1 => "/16", ip2 => "145.88.88.0", pre2 => "/24", } 我想用我的模板文件打印出上面的内容,但是我不能肯定有多less条目会存在,我想最终得到一个像这样的文件: server: as2s67v ipaddress0 = "192.168.30.0" prefix0 = "24" ipaddress1 = "172.45.35.0" prefix1 = "16" ipaddress2 = "145.88.88.0" prefix2 = "24" 我怎么能做到这一点? 感谢丹

木偶:从节点configurationbuild立DNS文件(或者:我如何遍历节点variables全局)

我也用我的节点木偶。 我也运行(BIND)DNS服务器。 是否有可能使用我的模板中的每个节点的DNS模块的$aliasesvariables? 我的节点看起来像这样: $ cat nodes/kayak.local.pp node 'kayak.local' { include base $node_aliases = ['svn','puppet'] $node_primaryip = '10.0.64.200' network::interface { 'eth0': ip => $node_primaryip, gw => '10.0.64.1', mac => '00:50:00:00:00:3f', netmask => '255.255.255.0', } } 我正在寻找的是能够这样做一个模板: $cat local.erb <% scope.lookupvar('ALLNODES::aliases').each do |alias| -%> <%= alias %> IN A <%= node_primaryip %> <% end -%> 谁能帮我?

如何pipe理不同模块版本的puppet节点?

我有一个设置,我们想让puppetpipe理我们的软件在多个服务器上的安装和configuration,但是能够在不同的服务器上安装不同版本的软件。 例如,我希望能够创build一个puppet模块,其中包含我们版本1.0的服务器configuration,依赖关系等,以及1.1版本的独立模块。 从单一的木偶大师安装,我想能够configuration一些节点运行版本1.0和其他节点运行1.1。 我发现模块允许包含版本的元数据,但是看起来您一次只能在puppet master上安装一个模块版本。 理想情况下,它是基于组的,我们可以定义一个“早期采用者”组和“正常”组,当我们提出新版本时,我们可以设置早期采用者组使用新版本和正常组来使用下一个最老的。 什么是pipe理这个最好的方法?

木偶:简单的标记化+需要一个代理

乡亲 目前我们有一个自定义的部署工具,我们正在评估用像puppet这样的非私有的东西来取代它。 目前它为我们做的主要事情之一是标记化。 例如,在tomcat部署中的一个server.xml文件中,我们可能会使用如下所示的一行来部署一个名为server.xml.tokenzenized的文件 <Ajp12Connector port="@@TOMCAT.AJP.PORT@@" ajpidFile="conf/ajp12_2.id" /> 然后有一个tokens.xml文件,将有一个像 <TOKEN NAME='TOMCAT.AJP.PORT' value = '8080/> 我们的部署过程然后扫描server.xml.tokenized,并replace令牌,写出文件到server.xml。 木偶可以为任意文件做这个 – 或者像tomcat这样的东西,我需要下载一个能够理解tomcat如何工作的插件吗? 其次,从我迄今为止所做的阅读来看,似乎大多数人都使用木偶代理从主人那里检索文件 – 这是否应该是这种情况 – 你可以有一个使用木偶build模和基础设施的脚本,然后login到主机来部署软件? – 理由是,由于各种原因,我们对我们环境中的代理人有偏见。 干杯

木偶节点sorting

有人可以帮我傀儡节点sorting,我知道如何控制序列内部使用require, before, subscribe etc但我需要100%确定我的节点2将执行后,只有节点1因为我的节点2不能没有节点1 。

傀儡事实的空值/空值

我怎样才能快速简单地说出一个空/空值对于木偶中的一个事实是可以的? 在组装自定义事实时,我正在做类似以下的事情: /木偶/生产/模块/主机/ LIB / facter Facter.add(:hostslocal) do setcode do Facter::Util::Resolution.exec("cat /etc/hosts.local 2> /dev/null") end end 这个效果很好,除非文件不存在,在这种情况下,在Puppet中使用时会出现类似下面的内容。 Detail: Could not find value for 'hostslocal' 我已经能够解决它类似于“如果文件不存在写一行只包含评论”,但似乎kludgy。

木偶代理不遵循`服务器`设置

我有一个非常奇怪的问题,突然开始的Puppet 2.7.18(在一个树莓派上)。 简而言之,代理只部分遵循puppet.conf的“server”指令。 以下工作: $ sudo puppet agent -t –server my.puppet.server 但是,如果我把它设置在puppet.conf ,它似乎不会遵循它。 $ grep server /etc/puppet/puppet.conf server=my.puppet.server 我甚至用genconfigvariables来确认它,这似乎与它正确configuration的事实一致: $ sudo puppet agent –configprint server my.puppet.server 奇怪的是,当我没有显式的服务器参数运行时,我得到了以下错误重复: $ sudo puppet agent -t […] err: /Stage[main]/MyModule::Puppet/File[some_file.sh]: Could not evaluate: getaddrinfo: Name or service not known Could not retrieve file metadata for puppet:///modules/MyModule/some_file.sh: getaddrinfo: Name or service […]

Puppet,Windows和UAC

在启用了UAC的Windows上是否可以使用Puppet? 木偶有什么方法可以自动对UAC提示进行软件安装吗? 我的模块执行以下工作stream程: Downloads an MSI file locally from the Puppetmaster Creates a local batch file using template function which does cmd.exe /c msifile.msi /i /quiet …. Runs bat file in an Exec. 不幸的是,它由于UAC失败,我想知道人们如何在他们的Windows Puppet环境中绕开UAC。 木偶文档似乎只是谈论关于UAC的Puppet自己的可执行文件。