Puppet: como criar e gerenciar usuários e grupos unix

12

Na semana passada, dediquei todos os esforços para aprender Puppet. Agora eu sofro de um estouro de buffer mental e pouca confiança de ser capaz de domar essa fera. Eu me deparei com muitos exemplos anotados, mas devido às suas inúmeras variações, eu não consigo discernir entre o estilo e as convenções de Fantoche recomendado (recente), e as abordagens ad hoc "funciona para mim". Eu não aguento, porque parece ser sobre coisas de nível básico.

Usando o Puppet para gerenciar grupos e usuários, o grupo primário dos usuários é igual ao seu próprio nome de usuário, outros grupos podem ser lan para lan logins, wheel para admins, shell para usuários com shell em nós arbitrários, mail para usuários, daemons para vários daemons. Os logins de administração estarão em todos os nós e, para tornar as coisas piores, um login de lan também pode ser um login de shell.

Pelo que entendi, não há problema em definir um usuário várias vezes se você usar as definições virtuais que são realizadas em algum momento. Soa fab, então como isso funciona com vários grupos para um usuário? Digamos que Bob possa usar os nós da LAN e o nó beastie.wan; Seu login thebob foi definido duas vezes, em lanusers.pp com groups => ["lan"] e em shellusers.pp com groups => ["shell"] ? E se Bob quiser que sua senha de lan seja separada de sua senha de shell?

O código que eu uso atualmente não tem definições virtuais, os usuários são apenas inclusões simples codificadas. Em um ponto eu me deparei com um exemplo usando virtual e este é onde fiquei preso porque não entendo como expandir o código para que o Puppet crie um grupo primário e os grupos necessários que defini primeiro e, em seguida, junte-se ao usuário nesses grupos.

Por favor me cluebat corretamente.

    
por drumfire 21.04.2012 / 04:04

2 respostas

6

Now I suffer from a mental buffer overflow and little confidence of ever being able to tame this beast.

Primeiro: relaxe. Eu aprendi que, quando você é novo em algo com uma curva de aprendizado como o Puppet, é muito fácil ficar sobrecarregado e não conseguir fazer muito.

is his login thebob then defined two times, in lanusers.pp with groups => ["lan"] and in shellusers.pp with groups => ["shell"]?

Não. Praticamente defina-o em um lugar (talvez users.pp ) com groups => ['shell', 'lan',] .

Nos nós, perceba os usuários de que você precisa. Por exemplo, se para node beamin , queremos todos os shell usuários:

node beamin {
    Account <| groups == 'shell' |>
}

What if Bob wants his lan password to be separate from his shell password?

Então Bob provavelmente deve ter duas contas diferentes com nomes de login diferentes.

    
por 21.04.2012 / 09:24
3

O Puppet não se dá bem com o gerenciamento complicado de usuários / grupos. Você estaria muito melhor implantando algo como o LDAP - por mais que eu não goste, vai funcionar muito melhor do que tentar vencer o Puppet até o final.

    
por 21.04.2012 / 06:55