Мне нужно создать кучу ресурсов ssh_authorized_keys . Ресурс ожидает, что его key атрибут сам является открытым ключом - нет способа сослаться на файл, содержащий ключ.

Поскольку ключи очень длинные и поскольку у меня они уже есть в файлах, я бы предпочел, чтобы Puppet прочитал их из файлов, а не цитировал их в манифесте.

Я могу представить и несколько других вариантов использования.

Уже есть функция для чтения указанного файла дословно, не пытаясь интерпретировать их как template() ?

Для открытых ключей я могу, на самом деле, сойти с template() , но это сопряжено с накладными расходами на попытку синтаксического анализа. Кроме того, в некоторых других случаях, в зависимости от содержимого файла, синтаксический анализ может, фактически, "провалиться" или, что еще хуже, не завершиться с ошибкой, но незаметно изменить содержимое ...

2 ответа2

1

Уже есть функция для чтения указанного файла дословно, не пытаясь интерпретировать их как template()?

Функция file() будет считывать и возвращать содержимое файла на мастере Puppet (или везде, где компилируется каталог), аналогично template() как вы описали.

Назовите его с помощью пути, такого как ssh_keys/foo.key чтобы загрузить файл ssh_keys/files/foo.key внутри пути модуля.

Обратите внимание, что эта функция требует Puppet 3.7 или выше для загрузки из пути модуля так же, как template() . До этого он работал только с абсолютными путями, хотя был в каждой основной версии.

0

Используйте file типа ресурса с определенным атрибутом source . Моя марионеточная среда для управления ключами ssh на самом деле просто импортирует файл ~/.ssh/authorized_keys в виде файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .