Настройте ntp, используя встроенный класс Puppet's ntp

Вот мой пример манифеста, который я использую для настройки ntp на моей машине для подключения к моему источнику '10.0.2.15'

class myNtpClass ($ntpSource='10.0.2.15') {

file {'myFile':
        ensure => present,
        path => '/test2',
        content => "servers => ['${ntpSource} iburst']",
}

class { '::ntp':

servers => ['${ntpSource} iburst', 'localhost'],
restrict => ['restrict 127.0.0.1', 'restrict 10.0.2.0/24'],
}

}

include myNtpClass

Я использую встроенный класс ntp для вставки моего списка исходных серверов в мою конфигурацию ntp.

Когда я выполняю этот манифест, переменная $ntpSource не заменяется в моем конфигурационном файле ntp.conf.

Вот мой файл ntp.conf после применения манифеста марионетки,

# ntp.conf: Managed by puppet.
#
# Keep ntpd from panicking in the event of a large clock skew
# when a VM guest is suspended and resumed.
tinker panic 0

# Permit time synchronization with our time source, but do not'
# permit the source to query or modify the service on this system.'
restrict 127.0.0.1
restrict 10.0.2.0/24


# Servers
server ${ntpSource} iburst
server localhost


# Driftfile.
driftfile /var/lib/ntp/drift

Я не уверен, где я иду не так. Когда я пытаюсь напечатать переменную $ntpSource в файле; файл создается как ожидалось.

1 ответ

Решение

Используйте двойные кавычки вместо одинарных:

server => ["${ntpSource} iburst", 'localhost'],

Цитата с кукольного сайта:

В Puppet есть два вида кавычек: одинарные (') и двойные ("). Основное отличие состоит в том, что двойные кавычки позволяют интерполировать переменные $.

Другие вопросы по тегам