2016-07-13 3 views
0

deklariert Ich habe ein NTP-Modul erstellt, wo ich einen Dienst gestartet habe und dann möchte ich es stoppen. Ich schrieb den gesamten Code in eine einzige ntp.pp Datei. Hat das Schreiben des Codes in einer einzigen Datei zu diesem Problem geführt?Dienst bereits in Marionette

Mein Code ist:

package { 'ntp': ensure => installed } 

service { 'ntp-run': 
    name => 'ntpd', 
    ensure => running, 
    require => Package['ntp'], 
} 

file { '/tmp/classtest': ensure => file } 

file { '/tmp/ntplink': 
    ensure => link, 
    target => '/tmp/classtest', 
    require => File['/tmp/classtest'], 
} 

file { '/tmp/classdir': ensure => directory } 

exec { '/tmp/classtest': 
    command => "mv /tmp/classtest /tmp/classdir", 
    path => '/bin/mv', 
    require => File['/tmp/classtest'], 
} 

service { 'ntp-stop': 
    ensure => stopped, 
    require => Service['ntp-run'], 
} 

package { 'ntp': ensure => absent } 

file { '/tmp/classtest': 
    ensure => absent, 
    require => Exec['/tmp/classtest'], 
} 

aber ich bin immer diese Fehlermeldung:

Error: Duplicate declaration: Package[ntp] is already declared in file /etc/puppet/ntp.pp:3; cannot redeclare at /etc/puppet/ntp.pp:34 on node ip-172-31-41-100.us-west-2.compute.internal 
Error: Duplicate declaration: Package[ntp] is already declared in file /etc/puppet/ntp.pp:3; cannot redeclare at /etc/puppet/ntp.pp:34 on node ip-172-31-41-100.us-west-2.compute.internal 

Antwort

1

Der Fehler wird, weil Sie das gleiche Paket auf 34 Leitung verwaltet haben und auf der Linie 1. Puppet ist nicht eine Skriptsprache, ist jedoch eine deklarative Sprache, die nur den Endstatus der Systemkonfiguration modellieren soll. Was Sie versuchen, könnte besser mit etwas wie Ansible erreicht werden.