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

Лучший способ управления пользователями с Hiera

В настоящее время я пытаюсь переместить нашу настройку Puppet для дальнейшего использования Hiera. В связи с этим, я хотел бы создать пользователей с помощью Hiera, но у меня есть некоторые проблемы, как это сделать при перемещении вверх по иерархии.

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

Итак, я подумал о следующей настройке:

hiera.yaml:

:hierarchy:
  - "nodes/%{::trusted.certname}"
  - "datacenter/${::datacenter}"
  - "common"

users.pp:

class profile::users {
  $user_accounts = hiera('user_accounts')
  create_resources(user, $user_accounts)
}

и в common.yaml:

user_accounts:
  bob:
    comment: "Bob"
    managehome: true

а затем поднимитесь по иерархии. Основные проблемы, которые я вижу здесь:

Итак, есть ли у кого-нибудь представление о том, как управление пользователями на самом деле хорошо выполняется с помощью Puppet? Спасибо :)

Реализуйте атрибуты по умолчанию для каждого пользователя в определении типа:

define user($managehome = true) { ... }

Да, вам нужно использовать слияние, но вместо того, чтобы указывать его в данных hiera, используйте hiera_array функция чтобы найти нужные данные.

Ключи SSH - это просто еще один атрибут в наборе данных, который вы user type должен быть установлен в системе соответствующим образом.