2016-07-13 2 views
0

Я создал модуль ntp, где я начал службу, а затем я хочу остановить ее. Я написал весь код в одном файле ntp.pp. Не удалось ли написать код в одном файле?сервис уже объявлен в кукольном

Мой код:

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'], 
} 

, но я получаю эту ошибку:

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 

ответ

1

Ошибка происходит потому, что у вас есть один и тот же пакет управляемых на линии 34 и на линии 1. Кукольный не является язык сценариев, но является декларативным языком, предназначенным для моделирования только конечного состояния конфигурации системы. То, что вы пытаетесь сделать, может быть лучше выполнено с использованием чего-то вроде Ansible.