2014-07-01 27 views
1

我使用Puppet 3.4.0附带的CentOS 6.5框。我有必要的依赖关系,stdlib和concat。这里是我用来安装Apache模块的代码:Puppet 3.6.2在首次运行时在CentOS 6.5上打破Puppetlabs,在第二次运行时安装

class { 'apache': 
    default_mods  => false, 
    default_confd_files => false, 
} 

这在3.4.0上运行良好。然而,当我运行yum更新,像这样:

exec { "yum_update": 
    command => "yum -y update", 
    path => "/usr/bin", 
    timeout => 0, 
    before => Package["httpd"] 
} 

它安装木偶3.6.2,我得到一吨的错误,并且不会安装的Apache ...

Stderr from the command: 

Warning: Config file /vagrant/hiera.yamlm not found, using Hiera defaults 
Error: /Stage[main]/Concat::Setup/File[/var/lib/puppet/concat/bin/concatfragments.sh]: Could not evaluate: undefined method `exist?' for Puppet::FileSystem:Module Could not retrieve file metadata for puppet:///modules/concat/concatfragments.sh: undefined method `exist?' for Puppet::FileSystem:Module 
Error: Could not back up /etc/httpd/conf/httpd.conf: Unsupported checksum type "md5" 
Error: Could not back up /etc/httpd/conf/httpd.conf: Unsupported checksum type "md5" 
Error: /Stage[main]/Apache/File[/etc/httpd/conf/httpd.conf]/content: change from {md5}27a5c8d9e75351b08b8ca1171e8a0bbd to {md5}87926a96450a8af968c3b0c9675b373c failed: Could not back up /etc/httpd/conf/httpd.conf: Unsupported checksum type "md5" 
Error: /Stage[main]/Apache/Concat[/etc/httpd/conf/ports.conf]/File[/var/lib/puppet/concat/_etc_httpd_conf_ports.conf/fragments]: Failed to generate additional resources using 'eval_generate': undefined method `exist?' for Puppet::FileSystem:Module 
Warning: /Stage[main]/Apache/Concat[/etc/httpd/conf/ports.conf]/Exec[concat_/etc/httpd/conf/ports.conf]: Skipping because of failed dependencies 
Error: /Stage[main]/Apache/Concat[/etc/httpd/conf/ports.conf]/Exec[concat_/etc/httpd/conf/ports.conf]: Failed to call refresh: Could not find command '/var/lib/puppet/concat/bin/concatfragments.sh' 
Error: /Stage[main]/Apache/Concat[/etc/httpd/conf/ports.conf]/Exec[concat_/etc/httpd/conf/ports.conf]: Could not find command '/var/lib/puppet/concat/bin/concatfragments.sh' 
Warning: /Stage[main]/Apache/Concat[/etc/httpd/conf/ports.conf]/File[/etc/httpd/conf/ports.conf]: Skipping because of failed dependencies 
Error: /Stage[main]/Apache/File[/etc/httpd/conf.d]: Failed to generate additional resources using 'eval_generate': undefined method `exist?' for Puppet::FileSystem:Module 
Warning: /Stage[main]/Apache::Service/Service[httpd]: Skipping because of failed dependencies 
Error: Report processor failed: undefined method `exist?' for Puppet::FileSystem:Module 

.. 。第一次。运行vagrant provision再次导致仅废弃警告和Apache被安装运行时,我的SSH协议。

我知道hiera东西不是什么大不了的事,虽然我在流浪文件把--hiera_config /vagrant/hiera.yamlm所以我不知道为什么它仍然在那里。

我试着用谷歌搜索了很多这些错误,我也看到了一些错误报告,但似乎没有直接解决这个问题。当我看到大量这样的错误时,我通常会认为缺少依赖关系,但我无法弄清楚我可能在这里错过了什么。非常感谢您的帮助!

+0

这发生在'vagrant'?是否有木偶大师参与? –

+0

不 - 我刚刚开始使用Vagrant/Puppet并在我的机器上本地运行所有内容。我使用的盒子是http://www.lyricalsoftware.com/downloads/centos65.box – Andy

回答

1

从Puppet内部更新Puppet是好的,但不要指望相同的代理进程在事后做任何有用的事情。

对于后台进程,这通常需要重新启动服务,并且如果由cron运行,您将在下一个时间间隔中获得新的代理进程。

在(配置的早期阶段)进行版本升级听起来像一个糟糕的想法。

也许你可以在Puppet之前独立运行yum update

+0

有趣,谢谢!我正在考虑将更新作为最后一项任务。 – Andy

0

据我所知,我可以在一定程度上帮助你。 在这里你可以与这个puppet清单中的apache2(httpd)在centos中。

在您的清单文件夹中创建2个.PP文件(init.pp,install.pp)与 开放init.pp文件纳米,VI或VIM ...在init.pp下面写

class httpd { 
    include httpd::install 
} 

之后打开install.pp文件并写下脚本。按照site.pp

class httpd::install { 
    package { 'httpd': 
     ensure => installed, 
    } 

    service { 'httpd': 
     ensure => running, 
     hasrestart => true, 
     hasstatus => true, 
     require => Package['httpd'], 
    } 

    exec { "yum_update" : 
     command => "yum update", 
     path => "/usr/local/bin:/usr/bin", 
     timeout => 180, 
     before => Package['httpd'], 
    } 

运行以下命令:

node 'ur node here with fqdn' 
{ 
    include httpd 
} 

puppet agent --test运行。

相关问题