J'ai un problème avec le manifeste Puppet suivant, qui est censé d'activer le passwdqc
pam sur un système RHEL-6 (en utilisant le module Puppet 0.25.5 et augeas 0.7.2) :
augeas { 'authconfig':
context => '/files/etc/sysconfig/authconfig',
changes => [
'set USEPASSWDQC yes',
'set USECRACKLIB no',
],
notify => Exec['authconfig-all'],
}
exec { 'authconfig-all':
command => '/usr/sbin/authconfig --updateall',
refreshonly => true,
}
Si j'exécute ce manifeste, il semble se terminer avec succès :
info: Applying configuration version '1311189237'
notice: //Augeas[authconfig]/returns: executed successfully
info: //Augeas[authconfig]: Scheduling refresh of Exec[authconfig-all]
notice: //Exec[authconfig-all]: Triggering 'refresh' from 1 dependencies
Mais si j'examine le fichier cible, les modifications n'ont pas été appliquées :
# egrep 'PASSWDQC|CRACKLIB' /etc/sysconfig/authconfig
USECRACKLIB=yes
USEPASSWDQC=no
Si je retire le notify => ...
de la ligne du manifeste, cela fonctionne exactement comme prévu. C'est-à-dire, étant donné ceci :
augeas { 'authconfig':
context => '/files/etc/sysconfig/authconfig',
changes => [
'set USEPASSWDQC yes',
'set USECRACKLIB no',
],
}
Les modifications sont enregistrées avec succès :
# puppet /path/to/manifest.pp
info: Applying configuration version '1311189502'
notice: //Augeas[authconfig]/returns: executed successfully
# egrep 'PASSWDQC|CRACKLIB' /etc/sysconfig/authconfig
USECRACKLIB=no
USEPASSWDQC=yes
Une idée de ce qui se passe ici ? Évidemment, Puppet croit que le changement est effectué la première fois, mais il n'est pas réellement enregistré sur le disque. Nous avons d'autres configurations utilisant des augeas et des opérations de notification qui fonctionnent très bien ; nous n'avons pas été en mesure de comprendre pourquoi cette configuration échoue. Notez que le même problème existe si je remplace notify
sur l'opération augeas avec subscribe
sur les exec
définition.
Mon plan actuel est de construire des paquets à partir de versions plus récentes de Puppet et d'augeas et voir si le problème disparaît par magie.
UPDATE Le président : freiheit fait remarquer que authconfig
semble écraser ce fichier. Bizarrement, sous CentOS 5, la modification de /etc/sysconfig/authconfig
et ensuite exécuter authconfig --updateall
était exactement la procédure correcte. C'est ce que nous utilisons actuellement dans notre ancien Kickstart.
Donc apparemment la mise à jour de RHEL6 a fait authconfig
se comportent de manière étrange et peu utile.