我使用Puppet来安装ufdbGuard,它需要Squid 2.7(这是正确安装和正常工作)。
这里是相关的课程:
class pns_client::squid { package { 'squid': ensure => present, before => File['/etc/squid/squid.conf'], } if $::ufdbguard_installed == "true" { $squidconf = 'puppet:///modules/pns_client/squid.conf_ufdbguard' } else { $squidconf = 'puppet:///modules/pns_client/squid.conf' } notify{$squidconf:} file { '/etc/squid/squid.conf': ensure => file, mode => 644, source => $squidconf, } service { 'squid': ensure => running, enable => true, hasrestart => true, hasstatus => true, subscribe => File['/etc/squid/squid.conf'], } }
运行时,我得到这个错误:
err: /Stage[main]/Pns_client::Squid/Service[squid]: Could not evaluate: Could not find init script for 'squid'
这发生在所有新安装的Debian 6和Unbuntu 10.04 / 11.04机器上。
有任何想法吗?
这是你的第一个Ubuntu服务器安装? 如果是这样的话,你应该知道很多软件包已经从传统的init.d脚本转变成了新贵。 鱿鱼会是这样一个包裹。 这意味着没有真正的/etc/init.d/squid 。 相反,这是一个符号链接,但是如果您执行ls -la /etc/init.d ,则应该可以看到它。 真正的启动脚本是/etc/init/squid.conf一个暴发户。
您需要将清单的service定义更改为:
service { 'squid': ensure => 'running', provider => 'upstart', hasrestart => 'true', hasstatus => 'true', subscribe => File['/etc/squid/squid.conf'], }
请注意,新贵的木偶提供商不能enable服务,所以这个指令不应该包括在内。
在apt-get中,squid似乎被称为squid3 ,当包名错误时,这个错误信息就会发生。
这只是意味着没有/etc/init.d/squid ,或者它不可执行。 找出正确的名称,并将name或path设置为正确的值。
我有类似的问题,解决scheme看起来像这样(链接到错误报告包括):
file { $upstartfile: ensure => present, source => "puppet:///elasticsearch/etc-init-elasticsearch.conf", } # for http://projects.puppetlabs.com/issues/14297 file { '/etc/init.d/elasticsearch': ensure => link, target => "/lib/init/upstart-job", } service { 'elasticsearch': ensure => running, hasrestart => true, hasstatus => true, provider => 'upstart', subscribe => [ File[$upstartfile], File['/etc/init.d/elasticsearch'] ], }
即/etc/init.d名为elasticsearch的符号链接到/lib/init/upstart-job 。
我认为这个问题是由于Puppet没有按顺序执行清单。 所以Puppet可以尝试在安装Squid包之前启动Squid服务,当然这会导致错误。
然后您可以pipe理不同任务的依赖关系。 尝试做出这样的改变:
service { 'squid': ensure => running, enable => true, hasrestart => true, hasstatus => true, subscribe => File['/etc/squid/squid.conf'], require => Package['squid'], }
祝你好运 !