Как мы можем удостовериться, что пользователь, который не понят, не существует в том марионеточном узле?

Мы объявляем всех наших пользователей как виртуальные ресурсы. Например:

@user { 'belmin':
    uid => 2001
    comment => 'Belmin Fernandez',
    groups => ['sysadmins'],
}

Иногда мы временно realize пользователь для узла:

node web1 {
    realize User['belmin']
    (...)
}

Я исследую способы гарантировать, чтобы пользователи, которые не поняты в узле, не существовали на том сервере. Первый путь, который приходит на ум, делает это когда временный файл realize удален:

node web1 {
    User <| title == 'belmin' |> {
       ensure => absent,
    }
}

Однако это могло легко быть случайно опущено кем-то при создании удаления временного файла realize. Какие-либо другие более изящные предложения?

1
задан 17 September 2014 в 15:45
2 ответа

При написании вопроса подумал о том, чтобы сделать что-то вроде этого в классе:

class our_users {
    user { 'belmin':
        ensure  => absent,
        uid     => 2001
        comment => 'Belmin Fernandez',
        groups  => ['sysadmins'],
    }
}

А затем в узле:

node web1 {
    include our_users
    User <| title == 'belmin'|> {
        ensure => present,
    }
}

node web2 {
    include our_users
}

Тогда на любом узле, для которого не реализован пользователь и перезаписан атрибут обеспечения , этот пользователь будет гарантированно отсутствовать .

Я не совсем уверен, что это сработает, но поставлю пока я тестирую его на случай, если в нем есть слабые места / проблемы, которых я не заметил.

0
ответ дан 4 December 2019 в 00:18

Puppet имеет средства для удаления всех пользователей, которые не управляются явно. Сюда входят виртуальные пользователи, которые не реализованы.

resources {
    'user':
        purge => true
}

Это игнорирует системных пользователей с UID ниже 500 (или 1000 для Debian и некоторых BSD). Обычно он поступает правильно. Излишне говорить, что это следует использовать с большой осторожностью.

1
ответ дан 4 December 2019 в 00:18

Теги

Похожие вопросы