Поэтому, для ntpdate.service можно оставить простейший файл /etc/ntp.conf следующего содержания:
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server 3.centos.pool.ntp.org
Итого, нам надо удалить пакет ntp и добавить свой конфигурационный файл /etc/ntp.conf
Удалить пакет можно следующим образом:
package { ‘ntp’:
ensure => absent
}
Будет удален пакет, его конфигурационные файлы останутся на месте. Нам не надо удалять конфиги. Мы просто поменяем их содержимое.
Дальше надо будет добавить свой конфигурационный файл, убедившись, что пакет ntp не установлен, а ntpdate наоборот установлен.
Изменим класс ntpdate в файле манифеста следующим образом:
class ntpdate {
package { ‘ntpdate’:
ensure => installed
}
package { ‘ntp’:
ensure => absent,
# Пакет, если он есть, надо удалить до того как
# будет создан файл /etc/ntp.conf
before => File[‘/etc/ntp.conf’]
}
# Определяем конфигурационный файл
file { ‘/etc/ntp.conf’:
ensure => file,
owner => ‘root’,
group => ‘root’,
mode => ‘0644’,
# Для создания файла необходимо наличие
# установленного пакета ntpdate
require => Package[«ntpdate»],
# Содержимое файла указываем прямо тут
content => «server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server 3.centos.pool.ntp.org
«
}
service { ‘ntpdate’:
enable => true,
ensure => running,
require => Package[«ntpdate»],
}
}
Проверим конфиг на ошибки:
# puppet parser validate /etc/puppet/manifests/site.pp
В результате на клиенте:
- если установлен пакет ntp, он будет удаляться.
- будет добавлен или изменен файл /etc/ntp.conf
Если в дальнейшем необходимо изменить конфигурационный файл, меняем его содержимое в файле манифеста.
Если конфигурационные файлы большие, включаем файловый сервер puppet или ftp сервер или … Размещаем конфиги там. Но об этом в другой раз.