Назад | Перейти на главную страницу

Коллекция Puppet sshkey для не марионеточных систем

В своих системах я использую экспортированные ресурсы и коллекция ресурсов для управления / etc / ssh / known_hosts ref моих систем. Это отлично работает для всех моих SSH-хостов, которые управляются через марионетку. Но у меня также есть системы, которые не управляются марионеткой (коммутаторы, маршрутизаторы и т. Д.), И у меня нет никаких непосредственных планов начать ими управлять.

Есть ли какие-нибудь изящные способы получить ключи хоста для этих неуправляемых систем в марионетке? Сейчас у меня все они в одном большом уродливом классе, но должен быть способ получше. Я думал о том, чтобы как-то попытаться переместить ключи для этих хостов в hiera или что-то еще, но я не нашел решения, которое не было бы уродливым.

Есть ли у кого-нибудь хороший метод / образец, которому я могу следовать здесь?

Я думал о том, чтобы как-то попытаться переместить ключи для этих хостов в hiera или что-то еще, но я не нашел решения, которое не было бы уродливым.

Есть несколько способов добиться этого. Я стараюсь, чтобы мои классы были общими, со всеми данными конфигурации в hiera. Когда я имею дело с коллекциями данных, я стараюсь использовать хеш-код hiera, чтобы мне никогда не приходилось менять свой класс или определять код.

1: Используйте хеш-хеш хранить коллекцию ключей.

hiera_key_hash:
    key-1:
        name: cisco500
        type: router
        key: xxx
    key-2:
        name: cisco100
        type: switch
        key: xxx

2: Создать класс который вызывает create_resource для каждого ключа (он вызывает определение «ключ»).

class keys {
  create_resources( "key", hiera('hiera_key_hash') )
}

3: Создать определение это делает работу для каждого ключа.

define key($name, $type, $key) {
  // code goes here
}

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

Хм ... может быть, в Хиере, с hiera_array сбор данных, передача этого массива в ресурсы через определенный тип? Поскольку вам нужны имя хоста и ключ, вам нужно либо поместить их в строку, либо split() это в определенном типе, или в массиве есть что-то более сложное (возможно, хеш).

По-прежнему головная боль - управлять его заполнением и поддерживать его в актуальном состоянии; может быть, небольшой скрипт со списком узлов для подключения, сбора ключей и генерации данных hiera?