回答:
Yumはプラグインをサポートしているため、キャッシュされたパペットマニフェストを読み取り、トランザクションがパペット制御ファイルを上書きするときに警告するプラグインを作成することは完全に可能です。私はこれを行う既存のプラグインに気付いていませんが、アイデアが好きなので、たぶん自分で書いただけでしょう。
プラグインは、新しくインストール/アップグレード/ダウングレードされたすべてのパッケージをチェックし、上書きするパペット管理ファイルを通知し、そうするための確認を求めます。
[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リポジトリにあります。
2013年11月8日更新:
コメントで示唆されたように、私はこれをYumとPuppetの間の相互作用を改善するためのより大きなプロジェクトに変えました。GitHubで見つけることができます。
はい、可能ですが、Puppet自体とは関係ありません。
Linuxシステムは、「ファイルシステムイベントの監視と処理に使用できる」inotifyメカニズムをサポートしています。また、cronと同様に機能するプログラムinotify-tools
もありincron
ますが、ファイルシステムイベントに反応します。ファイルの変更に関する通知を受け取るために使用できると思います。
(ところで、あなたが/etc/sysctl.conf
ファイルを見てみたいのであれば、それを行う前に確認することをお勧めします-あなたのLinuxは/etc/sysctl.d
ディレクトリをサポートしていますか?)
そのような通知を実装する方法がわかりません。yumトランザクションをステージングし、影響を受ける可能性のある設定ファイルのリストを決定し、puppetがそれらのいずれかを管理しているかどうかを確認することで、何かを設定できる場合があります。
ただし、一般に、パッケージによって更新されるファイルを管理することはお勧めできません。構成ファイルの場合(rpm -qlc packagenameを使用して、そのようにマークされているかどうかを確認します)、パッケージに新しいバージョンが含まれている場合、filename.rpmnewとして保存されます。その後、必要な変更をマージするために自分のデバイスに任せます。
puppetによって設定ファイルが削除され、パッケージが更新されたときにyumに置き換えられるという問題が発生しました。これにより、次回のパペット実行でファイルが削除されるまで問題が発生しました。この状況に対する回避策は、「削除された」ファイルの内容をコメントに設定して、本質的に空にすることでした。これを処理する別の方法は、Package ['a']-> File ['/ etc / a']を確認して、パペットを1回実行するだけで済むようにすることです。