Est-il possible d'ajouter un utilisateur existant à un groupe avec la marionnette 2.7.18?
Nous avons deux modules, chacun définit une classe:
- le module "utilisateur" crée tous les utilisateurs, y compris l'utilisateur foo et la barre d'utilisateurs.
- le module "subversion" traite de divers fichiers de conf et crée un groupe svn.
Nous aimerions ajouter l'utilisateur foo au groupe svn dans le module "subversion".
J'ai essayé le paramètre d'appartenance comme décrit dans la demande de fonctionnalité existante :
group {
"svn":
ensure => present,
gid => xxxxx;
}
user {
"foo":
group => ["svn"],
membership => minimum;
}
Mais j'obtiens l'erreur suivante:
err: impossible de récupérer le catalogue du serveur distant: erreur 400 sur le serveur: déclaration en double: l'utilisateur [foo] est déjà déclaré dans le fichier /pathto/modules/subversion/manifests/init.pp à la ligne xx; ne peut pas redéclarer dans /pathto/modules/users/manifests/init.pp:xxx sur le noeud myserver.example.com
Cette fonctionnalité est-elle déjà implémentée? Sinon, existe-t-il une bonne solution de contournement?
L'utilisation de ressources virtuelles Puppet est la bonne façon de le faire - mais si vous ne pouvez pas modifier les définitions d'utilisateur et avez besoin d'une solution de contournement en attendant, ce qui suit est horrible et hacky, mais fonctionnera:
Essentiellement, nous vérifions simplement si un groupe contient encore foo utilisateur ... sinon, utilisez les commandes usermod normales pour l'ajouter en plus des groupes existants auxquels foo appartient.
la source
getent group somegroup|cut -d: -f4|grep -q foo
pour ne pas supposer que nous utilisons/etc/group
.path
paramètre. Je suggère d'avoir une ressource globale par défaut, peut-être qui tire$PATH
du facteur.Merci - laid hack c'est sûr, mais ça fait le boulot. Voici un exemple de chemin (combinant les commentaires ci-dessus) pour ajouter «nrpe» au groupe «nagios». J'ai utilisé un package requis car l'utilisateur ici est RPM fourni plutôt que par marionnette.
la source