我的Puppet服务器环境设置如下 [master] vardir = /opt/puppetlabs/server/data/puppetserver logdir = /data/log/puppetlabs/puppetserver rundir = /var/run/puppetlabs/puppetserver pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid codedir = /data/puppetlabs/code # puppet master –configprint manifest /data/puppetlabs/code/environments/production/manifests 在代理上它如下 server = jw-host environment = production 但–configprint正在代理节点上显示不同的位置 # puppet master –configprint manifest /etc/puppetlabs/code/environments/production/manifests 它没有变成/数据,因为我的清单没有得到应用。 版本如下 # puppetserver –version puppetserver version: 2.4.0 # puppet –version 4.5.2 这里有什么问题?
运行puppet-lint时出现以下错误: $ puppet-lint manifests/* manifests/init.pp – WARNING: class inheriting from params class on line 72 我自己在duckduckgo.com上快速search,得到这个: http://puppet-lint.com/checks/class_inherits_from_params_class/ 然而,我们的木偶代理版本都是2.7或更高版本,我们的木偶大师都是3.0或更高版本。 作为参考,问题的init.pp代码如下所示: class myclass ( $zone = 'top', $::myclass::params::base_url, $::myclass::params::username, ) inherits myclass::params { … 在params.pp的代码如下: class myclass::params { $base_url = hiera('myclass::base_url','https://beta.tpsreports.com/coversheets/') $username = hiera('clap::base_url','prod') } 即使Hiera查找失败,我仍然不应该得到像这样的错误: err: Could not retrieve catalog from remote server: Error 400 on […]
我想用rspec-puppet和beaker-rspec来testing我的控制回购(具有configuration文件和angular色)。 我仍然有烧杯rspec一些麻烦: 我想单独testingconfiguration文件,例如profile::postgresql并查看数据库是否已经安装。 然后,我还想单独testing我的angular色,例如role::fileserver或role::webserver 。 我已经build立了烧杯rspec,它的工作原理,但它需要相当多的时间,因为它将一个接一个地应用所有的configuration文件。 我看到以下问题: 如果将过多的configuration文件应用到Vagrant虚拟机上,将会受到污染(来自另一个运行的剩余软件包,文件等等,以致testing不再具有代表性) 一些configuration文件没有任何共同之处,甚至可能与它们相矛盾(例如,nginx与apache;它们永远不会在一个angular色中,但都在控制回购中定义)。 我宁愿做的是: beaker-rspec应该检查已经定义了哪些angular色 ,然后为每个angular色启动一个单独的虚拟机。 这些应该连续地或者(更好地)并行地完成。 如何减less每次运行的时间,特别是如果有一个相当大的Puppet设置与多个angular色和不同的操作系统版本等。也许selecttesting的types(“只有angular色testing”或“唯一configuration文件testing”)。 如果beaker-rspectesting新虚拟机中的每个configuration文件(但是接下来我想切换其他用法的testing),也是可以的。 我怎样才能做到这一点? 谢谢 :)
如何将Windows服务器configuration为Puppet Agent服务器? 我在CentOS 7上运行Puppet Enterprise 4.x,在Windows Server 2012上运行Puppet Agent 3.7.4。我正在尝试第一次设置它。 我知道从Puppet主服务器到Puppet Agent服务器没有端口被阻塞。 当我运行puppet agent -t xxxx命令(从以pipe理员身份打开的Windows PowerShell窗口)时,出现此错误: 警告:无法获取我的节点定义… xxxx与服务器证书不匹配…使用'eval_generate'生成其他资源失败…与服务器证书不匹配 puppet.conf文件看起来不错。 在Puppet Master服务器上运行“puppet cert list –all”,显示Puppet代理服务器已经签名。 我可以从Puppet Master ping Puppet Agent服务器。 我可以从Puppet Agent ping Puppet Master服务器。 Puppet的GUI显示消息“Run Puppet has been disabled,because Node Manager can not connect to”。 当我运行Puppet agent命令时,为什么会出现上述错误?
我必须在Windows环境中自动执行一些任务。 正在使用的技术是MS SQL Server 2008,IIS,MSMQ等。运行应用程序的所有依赖项都安装在一台机器上。 但是,在生产环境中,依赖关系是在不同的实例上设置的。 截至目前,在任何实例上安装依赖关系(SQL Server,IIS等)都是手动的。 我打算做的第一件事就是创build一个包含所有相关组件(软件)的基本映像。 我认为Puppet和Powershell和Jenkins一起会帮助我。 我对Puppet和Powershell都是新手。 我的目标是: 1)在主机上自动安装软件。 2)在所有(或大部分)环境(开发,集成,分期,UAT,生产)上使用此映像 上述步骤应该是自动化的。 现在我的困惑是,如果我使用Powershell说,安装SQL服务器(和其他软件),那么木偶进入图片? 我可以从Jenkins调用这个Powershell脚本,通过在环境中使用自定义configuration文件来部署在不同的环境中。 我在这里不是很了解木偶的真实用例吗? 我应该实际上使用任何其他工具,如docker等? 请指导我
我一直在阅读关于使用Ruplok和Gup来pipe理我的环境。 根据这个博客 ,R10K的一些function被构build到更高版本的puppet中: 由于R10k如此受欢迎,而且广泛部署,R10k部署简单升级的环境解决scheme成为了目标,目录环境诞生了。 这让我质疑是否应该使用R10K。 所以我开始阅读关于在Puppet文档中使用控制回购 。 根据文档,我可以使用R10K或代码pipe理器: 如果你已经有一个Puppetfile,你现在可以configuration代码pipe理。 代码pipe理configuration步骤有所不同,具体取决于您是使用代码pipe理器(推荐)还是使用r10k。 我从来没有听说过代码pipe理器,所以我去了Puppet文档中描述代码pipe理器的页面 。 根据这个页面Code Manager使用R10K。 我从文档中看到Code Manager现在是Puppet的内置function了吗? 这是这种情况还是需要安装的东西? 注意:我使用社区版的Puppet而不是企业版。
我在我的puppet清单中有一个名为postgresql :: user的定义 为了确保傀儡不试图做两件事: if !defined (Postgresql::User["dbuser"]) { postgresql::user { "dbuser": ensure => present } } 但是我仍然得到puppetd的错误 – testing err: Could not retrieve catalog: Duplicate definition: Postgresql::User[dbuser] is already defined in file /etc/puppet/modules/dbserver/manifests/postgresql8-3.pp at line 22; cannot redefine at /etc/puppet/modules/dbserver/manifests/postgresql8-3.pp:7 on node mynode 我有一种感觉,它不喜欢大写和`::'检查时是否定义。 有没有办法逃避这个?
我想使用Puppet为每个用户的主目录部署一个简单的文本文件(一个git提交消息模板)。 我看到这个post看起来非常接近,但是我不清楚的部分是如何为每个节点生成一个用户列表? 在post中,他们像这样硬编码用户: applink::desktoplinks { [ "user1", "user2", "user3" ]: } 我无法对列表进行硬编码,因为这些是开发者机器,并且可能有各种不同的特定于每个节点的用户。 看着这篇文章 ,我想我需要使用虚拟资源,但作为一个新手,只需阅读文档和提供的样本,我似乎不太可能弄明白。 有人能指点我一个快速的样本或食谱的地方,说明如何做到这一点?
我已经阅读了文档 ,但我不知道如何包含一个已定义的资源。 我累了 include User::Admin['beamin'] 我得到: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `downcase' for User::Admin[beamin]{:name=>"beamin"}:Puppet::Resource at /etc/puppet/modules/team/manifests/uni.pp:3 on node u1x2.example.com 我想怎么做?
我试图使用Puppet服务器作为我的木偶模板中的variables,如下所示: <%= $settings::server %> 。 但是我得到一个错误: undefined method `server' for nil:NilClass 我如何在我的模板中使用configuration的Puppet服务器作为variables?