Использование puppet для управления сертификатами ntpd

Моя компания требует, чтобы я внедрил подписанное время в ntpd с помощью autokey. Одним из требований для работы autokey является генерация ключей на каждом хосте. Все клиенты входят в одну группу, поэтому все они используют один и тот же пароль. Я бы не хотел вручную генерировать ключ на каждом хосте, если это возможно. Есть ли способ для типа файла выполнить команду, если марионетка обнаружит, что она не существует? Или есть какие-то другие альтернативы, которые я могу использовать для управления ключами через марионетку?

1 ответ

Решение

В Puppet, чтобы выполнить команду, используйте exec ресурс. Чтобы убедиться, что ваша команда выполняется только в том случае, если определенный файл не существует, укажите creates вариант.

Например:

exec { "create_needed_directory":
    command => "/bin/mkdir -p /tmp/needed/directory",
    creates => "/tmp/needed/directory"
}

Если вам нужно выполнить более сложную проверку, вы можете использовать onlyif опция:

exec { "run_account_purger":
    command => "/usr/local/sbin/account_purger",
    onlyif => "grep -c old_account /etc/passwd",
}

Оба примера были взяты из PuppetCookBook.

Если честно, я понятия не имею, лучший ли это способ генерации ключей для NTP. Вы также можете сгенерировать все ключи на одном компьютере, поместить их в репозиторий кукол и распространять через file ресурс. Это может быть немного более безопасно, потому что таким образом вам не нужно раскрывать пароль.

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