2013-01-30 9 views
5

मेरे पास एक कठपुतली प्रकट है जिसमें कहा गया है कि सेवा "वार्निश" चलाना चाहिए, लेकिन ऐसा नहीं है।कठपुतली लागू होने पर कठपुतली एक सेवा (वार्निश) शुरू नहीं करती है

मेरे पास एक और सेवा परिभाषित है, apache2, जो ठीक काम करता है, और जब भी मैं कठपुतली चलाता हूं तब शुरू होता हूं।

[email protected]:~$ sudo netstat -tunelp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  User  Inode  PID/Program name 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  0   3749  605/sshd   
tcp  0  0 127.0.0.1:6010   0.0.0.0:*    LISTEN  1000  5169  1110/0   
tcp  0  0 0.0.0.0:48828   0.0.0.0:*    LISTEN  0   3445  552/rpc.statd 
tcp  0  0 0.0.0.0:111    0.0.0.0:*    LISTEN  0   3228  484/portmap  
tcp6  0  0 :::22     :::*     LISTEN  0   3751  605/sshd   
tcp6  0  0 ::1:6010    :::*     LISTEN  1000  5168  1110/0   
udp  0  0 0.0.0.0:68    0.0.0.0:*       0   4179  917/dhclient  
udp  0  0 0.0.0.0:68    0.0.0.0:*       0   3277  558/dhclient3 
udp  0  0 0.0.0.0:728    0.0.0.0:*       0   3430  552/rpc.statd 
udp  0  0 0.0.0.0:111    0.0.0.0:*       0   3227  484/portmap  
udp  0  0 0.0.0.0:54265   0.0.0.0:*       0   3442  552/rpc.statd 
udp  0  0 10.0.2.15:123   0.0.0.0:*       102  4259  904/ntpd   
udp  0  0 127.0.0.1:123   0.0.0.0:*       0   4208  904/ntpd   
udp  0  0 0.0.0.0:123    0.0.0.0:*       0   4203  904/ntpd   
udp6  0  0 fe80::a00:27ff:feb5:123 :::*        0   4210  904/ntpd   
udp6  0  0 ::1:123     :::*        0   4209  904/ntpd   
udp6  0  0 :::123     :::*        0   4204  904/ntpd   
[email protected]:~$ 

लागू कठपुतली:

[email protected]:~$ sudo puppet apply --verbose /vagrant/manifests/default.pp 
info: Applying configuration version '1359558916' 
notice: /Stage[main]/Apachevarnish/Service[apache2]/ensure: ensure changed 'stopped' to 'running' 
notice: Finished catalog run in 0.15 seconds 

लेकिन वार्निश शुरू नहीं करता है।

इस मैनिफ़ेस्ट फ़ाइल है:

class apachevarnish { 


    Package { ensure => "installed" } 

    package { "apache2": } 
    package { "varnish": } 

    file { '/etc/hosts': 
    ensure => link, 
    target => "/vagrant/hosts", 
    force => true 
    } 

    file { '/var/www': 
    ensure => link, 
    target => "/vagrant", 
    notify => Service['apache2'], 
    force => true 
    } 

    file { '/etc/varnish': 
    ensure => link, 
    target => "/vagrant/etc/varnish", 
    # notify => Service['varnish'], 
    force => true 
    } 


    service { "varnish": 
    ensure => running, 
    require => Package["varnish"], 
    } 


    service { "apache2": 
    ensure => running, 
    require => Package["apache2"], 
    } 

} 

धन्यवाद!

उत्तर

13

मेरे अपने प्रश्न का उत्तर देना:

इस के अनुसार: https://projects.puppetlabs.com/issues/12773 समस्या उबंटू init स्क्रिप्ट में निहित है, या "सेवा" कमांड एक उचित बाहर निकलने के कोड नहीं लौटा रहा।

समाधान grep और सेवा का उपयोग कर कस्टम स्थिति जांच सेट करना है।

service { "varnish": 
    ensure => running, 
    enable => true, 
    hasrestart => true, 
    hasstatus => true, 
    status => '/usr/sbin/service varnish status | grep "is running"', 
    require => Package["varnish"], 
    } 
4

डॉक्स का कहना है कि कठपुतली सेवा के initscript एक "स्थिति" आदेश है कि 0 लौटाता है यदि सेवा चल रही है और एक गैर शून्य मान अन्यथा की अपेक्षा करता है। यह कठपुतली का डिफ़ॉल्ट व्यवहार है। करने के लिए एक

$> sudo service <service_name> status 
$> echo $? //Make sure you are getting the correct return values that puppet expects. 

मामले में अपने initscript आप इच्छित वापसी प्रकार नहीं देता सेट की कोशिश करो "hasstatus => गलत" सेवा के निर्देश ब्लॉक के भीतर और इसे आजमाइए।

1

यह ठीक काम कर रहा है:

service { $service: 
    ensure  => running, 
    enable  => true, 
    status  => "/usr/sbin/service ${service} status", 
    require => Package["$service"], 
    } 
संबंधित मुद्दे