16 сентября 2015 г.

Лопата в руках + puppet (2)

Посидел, подумал и понял, что ставить пакет ntp только ради его конфигурационного файла... Что то тут не правильно. Тем более, что ntpdate.service из конфигурационного файла берет только имена ntp серверов, осуществляя поиск параметра peer или server.

Поэтому, для 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 сервер или ... Размещаем конфиги там. Но об этом в другой раз. 
Отправить комментарий