1 votes

Comment pouvons-nous nous assurer qu'un utilisateur non réalisé n'existe pas dans ce nœud de poupée?

Nous déclarons tous nos utilisateurs comme des ressources virtuelles. Par exemple :

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

Parfois, nous réalisons temporairement un utilisateur pour un noeud :

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

Je suis en train d'étudier des façons de garantir que les utilisateurs qui ne sont pas réalisés dans le noeud n'existent pas sur ce serveur. La première solution qui me vient à l'esprit est de faire ceci lorsque la réalisation temporaire est supprimée :

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

Cependant, cela pourrait facilement être omis accidentellement par quelqu'un lors de la suppression de la réalisation temporaire. Avez-vous d'autres suggestions plus élégantes ?

1voto

Felix Frank Points 3033

Puppet dispose d'un moyen de supprimer tous les utilisateurs qui ne sont pas gérés explicitement. Cela inclut les utilisateurs virtuels qui ne sont pas réalisés.

resources {
    'user':
        purge => true
}

Cela ignore les utilisateurs système avec des UID inférieurs à 500 (ou 1000 pour Debian et certains BSD). En général, cela fait ce qu'il faut. Inutile de dire que cela doit être utilisé avec beaucoup de prudence.

0voto

Mikael Points 13

En écrivant la question, j'ai pensé à faire quelque chose comme ça dans une classe :

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

Et ensuite, dans le nœud :

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

node web2 {
    include our_users
}

Ensuite, tout nœud qui n'a pas l'utilisateur réalisé et dont l'attribut ensure est écrasé aura cet utilisateur assuré comme absent.

Je ne suis pas complètement certain que cela fonctionnera mais je le mets là pendant que je le teste au cas où il y aurait une faiblesse/un problème avec cela que je ne repère pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X