In che modo posso impostare una password per le marionette solo quando creo un utente?


9

Voglio che Puppet non gestisca una password (cioè reimpostala quando viene modificata) ma imposti la password iniziale quando Puppet crea l'utente.

Stavo pensando di utilizzare notifyuna Execrisorsa che imposta la password, ma questo viene attivato quando viene modificata qualsiasi proprietà gestita da Puppet (ad es. Appartenenza al gruppo, home directory, ecc.). Non voglio quello.

Qualche idea?

Risposte:


9

Puppet stesso non supporta nativamente "imposta la password alla creazione dell'utente ma non altrimenti".

Un'opzione sarebbe quella di impostare una fonte di autenticazione esterna, come LDAP.

Un altro sarebbe tuo notifyper Execun'idea, ma rendere il Execun po 'più intelligente.

exec {
  "/usr/sbin/usermod -p '${password}' ${user}":
    onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
    require => User[$user];
}

Non l'ho provato, ma controllando se la password non è stata impostata nella Execrisorsa, dovresti ottenere il risultato che stavi cercando. Penso che impostato in questo modo, il notify/ refreshonlyroba non sia necessario, ma probabilmente non farebbe male.


1
Ho visto alcune macchine utilizzare !per nessuna password impostata, nel qual caso egrep -q '^${user}:[*!]:' /etc/shadowfunziona meglio.
leedm777,

1
Per RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg,

1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"sembra essere il più portatile e non reimposterà gli utenti con una password bloccata.
CodeGnome,
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.