Authconfig 不断重写 /etc/sysconfig/authconfig 文件,搞乱 Puppet 运行

Authconfig 不断重写 /etc/sysconfig/authconfig 文件,搞乱 Puppet 运行

我已经在我的 Puppet 环境中使用这个 LDAP 模块很长时间了。该模块将这些文件上传到 RHEL 服务器:

/etc/openldap/openldap.conf
/etc/pam_ldap.conf
/etc/nsswitch.conf
/etc/sssd/sssd.conf
/etc/sysconfig/authconfig
/etc/sudo-ldap.conf
/etc/openldap/cacerts/cacert.pem

运行此命令后,它将运行authconfig --updateall并且 LDAP 将开始工作。这在我们拥有的 RH6.2 服务器上运行得很好,但 RH6.4 出现了问题,而唯一的区别是额外的FORCELEGACY=YES line.

对于这种行为我能做什么?合乎逻辑的事情似乎是将/etc/sysconfig/authconfig/sbin/authconfig 生成的文件上传到 Puppetmaster,但它不断重写,/etc/sysconfig/authconfig并且它所做的一切都改变了顺序:

[root@rhel-server ~]# puppet agent --test
Info: Retrieving plugin
Info: Loading facts in /var/lib/puppet/lib/facter/extra_info.rb
Info: Caching catalog for rhel-server.domain.local
Info: Applying configuration version '1379669638'
Notice: /File[/etc/sysconfig/authconfig]/content: 
--- /etc/sysconfig/authconfig   2013-09-20 13:18:24.165303819 +0200
+++ /tmp/puppet-file20130920-17419-lgtzfu-0 2013-09-20 13:44:05.388741384 +0200
@@ -5,22 +5,22 @@
 USESSSDAUTH=no
 USESHADOW=yes
 USEWINBIND=no
+USESSSD=no
 USEDB=no
 FORCELEGACY=yes
 USEFPRINTD=yes
-USEHESIOD=no
 FORCESMARTCARD=no
-PASSWDALGORITHM=md5
 USELDAPAUTH=yes
+USEPASSWDQC=no
 IPAV2NONTP=no
-USELDAP=yes
+USELOCAUTHORIZE=yes
 USECRACKLIB=yes
 USEIPAV2=no
 USEWINBINDAUTH=no
 USESMARTCARD=no
-USELOCAUTHORIZE=yes
+USELDAP=yes
 USENIS=no
 USEKERBEROS=no
 USESYSNETAUTH=no
-USESSSD=no
-USEPASSWDQC=no
+PASSWDALGORITHM=md5
+USEHESIOD=no

Info: FileBucket got a duplicate file {md5}b8bd9dc8120ab4be6b41ac5bb57e1192
Info: /File[/etc/sysconfig/authconfig]: Filebucketed /etc/sysconfig/authconfig to puppet with sum b8bd9dc8120ab4be6b41ac5bb57e1192
Notice: /File[/etc/sysconfig/authconfig]/content: content changed '{md5}b8bd9dc8120ab4be6b41ac5bb57e1192' to '{md5}f1cf038ce9c007f9eefe3b83fb674584'
Info: /File[/etc/sysconfig/authconfig]: Scheduling refresh of Exec[/usr/sbin/authconfig --updateall]
Notice: /Stage[main]/Ldap/Exec[/usr/sbin/authconfig --updateall]: Triggered 'refresh' from 1 events
Notice: Finished catalog run in 6.17 seconds
[root@rhel-server ~]# 

因此,似乎无论我在 Puppetmaster 上的 authconfig 文件的顺序如何,authconfig 都会不断重写它。这实际上意味着每次 Puppet 运行(30 分钟)Puppet 都会替换该文件,然后 authconfig 更改该文件中的顺序。

我该如何解决这个问题?

答案1

Puppet 本质上不保证执行顺序。如果您需要更改此设置,请使用 before 或 require 语句。

file {'foo':
  ensure => present,
}

file {'bar':
  ensure => present, 
  require => File['foo'],
}

http://docs.puppetlabs.com/learning/ordering.html

答案2

请求您的 puppet 调用使用 authconfig 生成该文件,然后将该文件排序到 chk 文件,然后 puppet 检查总和。如果顺序只是不同,则排序后的生成文件的总和不会改变。

相关内容