Puppet: come creare e gestire utenti e gruppi unix


12

Quest'ultima settimana ho dedicato ogni sforzo all'apprendimento di Puppet. Ora soffro di un overflow del buffer mentale e poca fiducia di poter mai domare questa bestia. Mi sono imbattuto in molti esempi annotati, ma a causa delle loro innumerevoli variazioni non riesco a distinguere tra lo stile e le convenzioni raccomandati (recenti) di Puppet e gli approcci "funziona per me" ad hoc. Non lo sopporto perché sembra riguardare roba di livello base.

Così. Usando Puppet per gestire gruppi e utenti, il gruppo primario degli utenti uguale al proprio nome utente, altri gruppi potrebbero essere lanper accessi lan, wheelper amministratori, shellper utenti con shell su nodi arbitrari, mailper utenti, daemonsper vari demoni. Gli accessi da amministratore saranno su tutti i nodi e, a peggiorare le cose, un login lan potrebbe essere anche un login shell.

Da quello che ho capito, va bene definire un utente più volte se si utilizzano definizioni virtuali che sono state realizzate ad un certo punto. Sembra favoloso, quindi come funziona con più gruppi per un utente? Di 'che Bob può usare sia nodi LAN sia nodo beastie.wan; il suo login viene thebobquindi definito due volte, in lanusers.pp con groups => ["lan"]e in shellusers.pp con groups => ["shell"]? E se Bob volesse che la sua password lan fosse separata dalla sua password shell?

Il codice che attualmente uso non ha definizioni virtuali, gli utenti sono solo inclusioni singole codificate. Ad un certo punto mi sono imbattuto in un esempio usando i virtual e questo è il punto in cui mi sono bloccato perché non capisco come espandere il codice in modo che Puppet crei un gruppo primario e i gruppi richiesti che ho definito prima e poi si unisce l'utente in quei gruppi .

Giusto. Per favore, mi indizi correttamente.

Risposte:


6

Ora soffro di un overflow del buffer mentale e poca fiducia di poter mai domare questa bestia.

Primo: rilassati. Ho imparato che, quando sei nuovo in qualcosa con una curva di apprendimento come Puppet, è abbastanza facile lasciarsi sopraffare e non riuscire a fare molto.

il suo login thebob viene quindi definito due volte, in lanusers.pp con gruppi => ["lan"] e in shellusers.pp con gruppi => ["shell"]?

No. Definiscilo virtualmente in un posto (forse users.pp) con groups => ['shell', 'lan',].

Sui nodi, realizza gli utenti di cui hai bisogno. Ad esempio, se per node beaminnoi vogliamo tutti gli shellutenti:

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

E se Bob volesse che la sua password lan fosse separata dalla sua password shell?

Quindi Bob dovrebbe probabilmente ottenere 2 account diversi con nomi di accesso diversi.


Grazie. Hai ragione sulla prima parte, sono stato sopraffatto. Ma la tua seconda risposta ha aiutato, sembrava aver messo in moto altri pensieri e ora ho manifestato che funziona correttamente, con utenti virtualmente definiti che vengono realizzati nelle loro posizioni appropriate. Grazie per avermi aiutato in questo. :)
incendio di batteria il

Non è un problema. Prima delle dichiarazioni virtuali, questo problema riguardava una soluzione molto contorta. Considerati fortunato che sei salito a bordo del Puppet Express adesso ;-).
Belmin Fernandez,

Sto usando dichiarazioni virtuali, ma ho bisogno che alcuni utenti facciano parte del gruppo "sudo" su alcuni host e non su altri. Questo non risolve quello scenario (e sto facendo fatica a capire cosa fare: D).
Jjmontes,

3

Puppet non funziona bene con la gestione complicata di utenti / gruppi. Faresti molto meglio a distribuire qualcosa come LDAP - per quanto non mi piaccia, funzionerà molto meglio che provare a battere Puppet nella sottomissione.


O FreeIPA. Puppet è utile per gli account di servizio che devono essere nel sistema, ma non gestire gli utenti normali ...
ewwhite

4
Con tutto il rispetto (visto che sei un membro di spicco della SF): non credo che questo risponda alla domanda. D: "Come devo creare e gestire utenti e gruppi unix in Puppet?". A: "LDAP". Credo che risposte come questa si adattino meglio ai commenti. Naturalmente, se questo è stato discusso in precedenza in meta o qualcosa del genere, forse sono solo disinformato. Per favore, non odiarmi :-).
Belmin Fernandez,

3
@ BeamingMel-Bin: c'è un forte spirito di "lo strumento giusto per il lavoro" su SF. Se qualcuno sta chiedendo "qual è il modo migliore per colpire questa vite con il mio martello per farlo entrare?", Diremo "compra un cacciavite" non dare lunghi trattati sui vantaggi delle diverse tecniche del martello. Questo perché la maggior parte degli interrogatori qui sono così inesperti o ignoranti che non sono consapevoli dell'esistenza di soluzioni migliori, e nemmeno che potrebbero esistere soluzioni migliori (e quindi non sanno chiedere "esiste un modo migliore per guidare in questo vite? "o" qual è il modo migliore per guidare in questa vite? ").
womble

1
@drumfire: Ancora una volta, se stai chiedendo come fare qualcosa di stupido, la risposta corretta è "non farlo". È come funziona SF. Non siamo qui per aiutare le persone a fare cose stupide, siamo qui per rendere amministratori di sistema più efficaci.
womble

3
SF, che fa parte della trilogia originale, è in circolazione da molto più tempo e ha uno "spirito indipendente" molto più forte di altri siti SE più omogenei. C'è anche il trucco degli utenti da considerare. Gli amministratori di sistema sono irritabili e supponente.
womble
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.