Articles of 木偶

重新加载傀儡gem提供者来源

所以我在“master”节点puppettentmaster上有了Puppet Enterprise 2.7。 在开发在“客户”节点上安装Ruby 2.0的新配方时,我注意到如果我强制客户端开始使用gem 2.0,我会遇到以下错误: err: /Stage[main]/_ruby::Mysql_gem/Package[mysql]/ensure: change from absent to 2.8.1 failed: Could not update: Execution of '/usr/bin/gem install -v 2.8.1 –include-dependencies –no-rdoc –no-ri mysql' returned 1: ERROR: While executing gem … (OptionParser::InvalidOption) invalid option: –include-dependencies at /etc/puppetlabs/puppet/environments/ci/modules/_ruby/manifests/mysql_gem.pp:29 我追踪到–include-dependencies到https://github.com/puppetlabs/puppet/commit/2284e837939628f81149e62fdc0f314ff077a776 ,它已经被删除,所以我从我的Puppet提供程序代码在主/opt/puppet/lib/site_ruby/1.8/puppet/provider/package/gem.rb : def install(useversion = true) command = [command(:gemcmd), "install"] command << "-v" << […]

木偶大师消化问题

我正在运行Puppet的以下设置: 木偶大师:使用puppet-server-3.2.1-2.2和openssl-1.0.0-27.el6_4.2.x86_64 CentOS 6.4 x86_64 木偶代理1:配有puppet-0.25.6-1.el4 RedHat AS 4.8 x86和openssl-0.9.7a-43.20.el4 木偶代理2:使用puppet-2.6.18-3.el5和openssl-0.9.8e-26.el5_9.1 RHEL 5.10 x86 我注意到我的RedHat 4代理无法连接到我的Puppet master,我想这是因为与RH4打包在一起的libssl的版本(在我的情况下为0.9.7a-43.20 )无法pipe理由Puppet服务器生成的摘要。 我进行的testing: 从非工作的RedHat 4代理(使用OpenSSL v 0.9.7a-43.20.el4 ): # openssl s_client -host puppetmaster.test.lan -port 8140 -cert /etc/puppet/ssl/certs/rh4as.test.lan.pem -key /etc/puppet/ssl/private_keys/rh4as.test.lan.pem -CAfile /etc/puppet/ssl/certs/ca.pem CONNECTED(00000003) depth=1 /CN=Puppet CA: puppetmaster.test.lan verify return:1 depth=0 /CN=puppetmaster.test.lan verify error:num=7:certificate signature failure verify return:1 depth=0 /CN=puppetmaster.test.lan verify […]

如何解决Ubuntu 13.10上的php5-mcrypt通过木偶安装?

我对木偶很新。 所以,我在这里寻求如何解决我的问题的最佳方法的帮助。 我正在使用这个 puppet模块将PHP提供到我的Ubuntu 13.10盒子中。 但是,似乎包php5-mcrypt已经坏了,因为mcrypt.ini被放在/etc/php5/conf.d而不是/etc/php5/apache2/available-modules/ (为了logging,我正在使用Apache 2.4和PHP 5.5) 我做了一个“适合我的”类的php-mcrypt 。 但是,我想知道是否有一个更好或更干净的方法来做到这一点。 这是我的解决方法: # https://github.com/lucasvscn/puppet-php-mcrypt # class php-mcrypt() { Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] } package { "php5-mcrypt": ensure => "installed", require => Class['php'], } file { '/etc/php5/conf.d/mcrypt.ini': require => Package['php5-mcrypt'], } exec { "copying_mcrypt": command => 'cp -v […]

puppet-logstash模块产生一个空白的logstash.conf

我可能困惑于正确的用法。 我已经使用Hiera设置了我的托运人的configuration: classes: – os::repo – profiles::logstash::shipper logstash::configfile: 'input_file': content: '/etc/puppet/modules/profiles/manifests/logstash/templates/input_file.erb' order: '10' 我的个人资料:: logstash :: shipper设置为: class profiles::logstash::shipper() { class { 'logstash': ensure => 'present', version => '1.4.1-1_bd507eb', status => 'enabled', } include logstash } input_file.erb: input { file { type => "syslog" path => ["/var/log/secure", "/var/log/messages", "/var/log/syslog"] exclude => ["*.gz", "shipper.log"] sincedb_path => […]

木偶随机密码生成

我要安装大约100个MySQL服务器,我想每个人都有不同的root密码。 我将使用木偶mysql( https://forge.puppetlabs.com/puppetlabs/mysql ),这是惊人的。 不幸的是,它只支持从puppet传递密码。 最棒的是它将密码保存在/root/.my.cnf文件中,所以我可以在不知道密码的情况下在本地连接到mysql。 所以我没有看到需要密码存储在傀儡了。 有什么办法可以在服务器上生成密码,所以我不需要把它存储在我的木偶大师?

抑制puppet中的具体错误/警告信息?

运行Puppet清单时可以抑制特定的错误信息吗? 如果文件/ etc / sysconfig / iptables存在,以下片段将激活并启动iptables。 它工作正常,但“检查iptables规则文件”生成一个错误消息,我想隐藏。 我检查了(v2.7)文档exec资源types和谷歌search的选项,但没有运气。 cat init.pp service { "iptables": enable => true, ensure => running, require => Exec["Check for iptables rulesfile"]; } exec { "Check for iptables rulesfile": command => "/usr/bin/test -f /etc/sysconfig/iptables", returns => "0"; } puppet apply –debug init.pp … err: /Stage[main]//Exec[Check for iptables rulesfile]/returns: change from notrun […]

我们怎样才能确保一个没有实现的用户不在该傀儡节点中?

我们将所有用户声明为虚拟资源。 例如: @user { 'belmin': uid => 2001 comment => 'Belmin Fernandez', groups => ['sysadmins'], } 有时我们暂时realize一个节点的用户: node web1 { realize User['belmin'] (…) } 我正在研究如何确保节点中未实现的用户不在该服务器上。 首先想到的方法是在临时realize被删除时执行此操作: node web1 { User <| title == 'belmin' |> { ensure => absent, } } 但是,在临时realize的去除中,很容易被人忽略。 还有其他更优雅的build议吗?

木偶仪表板

我看到您对“Puppet Dashboardreplacesite.pp”的评论。 你是如何将普通/ etc / puppet文件与仪表板连接在一起的? 我可以看到仪表板中的所有节点,但仪表板类与puppet类无关。 你如何将两者联系在一起?

puppetlabs-postgresql:如何正确设置全局variables而没有重复的定义

puppetlabs-postgresql的文档build议在postgresql :: globals中设置值如下: class { 'postgresql::globals': encoding => 'UTF8', locale => 'en_NG', }-> class { 'postgresql::server': } 但是,这不起作用: class { 'postgresql::client: } class { 'postgresql::globals': encoding => 'UTF8', locale => 'en_NG', }-> class { 'postgresql::server': } 因为postgresql :: client从postgresql :: globalsinheritancepostgresql ::参数。 所以当它到达postgresql :: globals类的显式实例时,它会抱怨重复的定义。 改变顺序,它确实工作: class { 'postgresql::globals': encoding => 'UTF8', locale => 'en_NG', […]

木偶:我怎样才能决定模块加载的顺序?

我在我的环境中使用Puppet来自动configurationLinux服务器。 有很多傀儡模块configuration,它的作品像一个魅力。 有一个动机,允许特定的用户(nagios)读取一些特定的日志。 Nagios和NRPE由相关的puppet模块安装,并且该模块也创build了nagios用户。 一旦创build了nagios用户,我想让puppet将它添加到一个名为users的组中。 但是当我想到的时候,我不知道按照哪个命令puppet加载这个模块,所以如果在nagios模块加载之前尝试添加nagios user到users group并且nagios用户已经创build然后会有一个错误,因为用户还不存在。 我的问题是,我如何强制Nagios模块被加载,例如? 提前致谢