Friday, February 06th, 2009 | Author: Nico

Au boulot je déploie des fichiers authorized_keys pour différents utilisateurs, basé sur un modèle “fixe” par utilisateur. C’est un fichier qui est utilisé comme source, rangé sous files/users/[username]/authorized_keys. Le soucis c’est quand un utilisateur veut sur une seule machine un authorized_keys différent du modèle. J’ai cherché dans tous les sens, de façon bien compliquée souvent, alors qu’il existe un moyen très simple de mettre en place une “exception” par machine. En effet, le type file autorise à spécifier plusieurs sources (un array de sources) et va “fallback” sur les différents fichiers en s’arrêtant sur le premier trouvé. Ce qui nous donne en langage puppet :

file { "/home/$title/.ssh/authorized_keys":
   owner => $title,
   group => "staff",
   mode => 600,
   source => [ "puppet://$fileserver/files/users/$title/authorized_keys.$fqdn", "puppet://$fileserver/files/users/$title/authorized_keys" ]
}

Ainsi, pour la machine client.mondomaine.com si le fichier files/users/[username]/authorized_keys.client.mondomaine.com existe, il sera utilisé en lieu et place de files/users/[username]/authorized_keys.

You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

3 Responses

  1. 1
    Balcaen John 
    Wednesday, 11. February 2009

    Je ne connais pas grand chose a la syntaxe de puppet, mais est il normal que le ‘ [ ‘ ne soit pas fermé ?

  2. C’est la CSS qui déborde “sous” le menu, et j’ai un peu la flemme de chercher un fix :)

  3. Fixed

Leave a Reply