当包含由puppet控制的文件的包将要更改该文件时,是否可以在控制台上收到通知? 意思是,在百胜做百胜更新时,是否可以注入一个自定义警告?
Yum支持插件,所以完全可以编写一个插件来读取caching的木偶清单,并在事务覆盖木偶控制的文件时发出警告。 我不知道现有的插件是这样做的,但是我可能会写一个自己写的,因为我喜欢这个想法。
该插件检查所有新安装/升级/降级的软件包,告诉你哪些木偶pipe理的文件将被覆盖,并要求确认。
[root@camel ~]# yum update pam Loaded plugins: puppet, security Skipping security plugin, no data Setting up Update Process Resolving Dependencies Skipping security plugin, no data --> Running transaction check ---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated ---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved =============================================================================================================================================================== Package Arch Version Repository Size =============================================================================================================================================================== Updating: pam i386 0.99.6.2-12.el5 base 983 k pam x86_64 0.99.6.2-12.el5 base 982 k Transaction Summary =============================================================================================================================================================== Install 0 Package(s) Upgrade 2 Package(s) Total download size: 1.9 M Is this ok [y/N]: y Downloading Packages: (1/2): pam-0.99.6.2-12.el5.x86_64.rpm | 982 kB 00:00 (2/2): pam-0.99.6.2-12.el5.i386.rpm | 983 kB 00:00 --------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 8.7 MB/s | 1.9 MB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf Is this ok [y/N]: n Aborting [root@camel ~]# yum update pam Loaded plugins: puppet, security Skipping security plugin, no data Setting up Update Process Resolving Dependencies Skipping security plugin, no data --> Running transaction check ---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated ---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved =============================================================================================================================================================== Package Arch Version Repository Size =============================================================================================================================================================== Updating: pam i386 0.99.6.2-12.el5 base 983 k pam x86_64 0.99.6.2-12.el5 base 982 k Transaction Summary =============================================================================================================================================================== Install 0 Package(s) Upgrade 2 Package(s) Total size: 1.9 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf Is this ok [y/N]: y Updating : pam 1/4 Updating : pam 2/4 Cleanup : pam 3/4 Cleanup : pam 4/4 Updated: pam.i386 0:0.99.6.2-12.el5 pam.x86_64 0:0.99.6.2-12.el5 Complete!
插件本身可以在我的github hacks仓库中find 。
2013年11月8日更新:
正如评论中所暗示的那样,我现在已经把它变成了一个更大的项目来改善百胜和木偶之间的互动。 你可以在GitHub上find它。
是的,这是可能的,但它不涉及木偶本身。
Linux系统支持“可用于监视和处理文件系统事件”的inotify机制。 除了inotify-tools ,还有incron程序,其function类似于cron,但它对文件系统事件作出反应。 我认为你可以使用它来通知有关更改任何文件。
(顺便说一下,如果你想看看/etc/sysctl.conf文件,我build议在做之前检查一下 – 你的Linux是否支持/etc/sysctl.d目录?)
我不知道有什么办法来实施这样的通知。 通过暂存yum事务,确定可能受到影响的configuration文件列表,然后检查puppet是否pipe理其中的任何一个,可以设置一些东西。
但是,一般来说,pipe理一个将被包更新的文件并不是一个好习惯。 对于configuration文件(使用rpm -qlc packagename来查看它们是否被标记为这样),如果包中包含新版本,则将其另存为filename.rpmnew。 然后,您可以将自己的设备合并到任何所需的更改中。
我们遇到了configuration文件被puppet删除的问题,然后在更新包的时候被yum取代。 这导致问题,直到下一个木偶运行删除文件。 我们的解决方法是将“已删除”文件的内容设置为注释,使其基本上为空。 处理它的另一种方法是试图确保Package ['a'] – > File ['/ etc / a'],以便只需要一个puppet运行。