Réponses:
Yum prend en charge les plugins, il est donc tout à fait possible d'écrire un plugin qui lit le manifeste de marionnettes mis en cache et avertit lorsqu'une transaction écrasera un fichier contrôlé par des marionnettes. Je ne suis pas au courant d'un plugin existant qui fait cela, mais je vais probablement en écrire un juste moi-même car j'aime l'idée.
Le plugin vérifie tous les packages nouvellement installés / mis à niveau / rétrogradés, vous indique les fichiers gérés par les marionnettes qu'il va écraser et vous demande une confirmation pour le faire.
[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!
Le plugin lui-même peut être trouvé dans mon dépôt de hacks github .
Mise à jour du 8 novembre 2013:
Comme indiqué dans les commentaires, j'ai maintenant transformé cela en un projet plus vaste pour améliorer l'interaction entre Yum et Puppet. Vous pouvez le trouver sur GitHub .
Oui, c'est possible, mais cela ne concerne pas la marionnette elle-même.
Les systèmes Linux prennent en charge le mécanisme inotify qui "peut être utilisé pour surveiller et agir sur les événements du système de fichiers". En outre, inotify-tools
il existe également un incron
programme qui fonctionne de manière similaire à cron, mais il réagit aux événements du système de fichiers. Je pense que vous pouvez l'utiliser pour être averti de la modification d'un fichier.
(BTW, si vous voulez regarder un /etc/sysctl.conf
fichier, je suggère de vérifier avant de le faire - votre Linux prend-il en charge le /etc/sysctl.d
répertoire?)
Je ne connais aucun moyen de mettre en œuvre de telles notifications. Il peut être possible de configurer quelque chose en organisant la transaction yum, en déterminant la liste des fichiers de configuration qui pourraient être affectés, puis en vérifiant si la marionnette gère l'un d'eux.
Cependant, en général, il n'est pas recommandé de gérer un fichier qui sera mis à jour par un package. Dans le cas des fichiers de configuration (utilisez rpm -qlc nom_package pour voir s'ils sont marqués comme tels), si le package contient une nouvelle version, il est enregistré sous le nom de fichier.rpmnew. Vous êtes ensuite laissé à vos propres appareils pour fusionner les modifications nécessaires.
Nous avons rencontré un problème où un fichier de configuration a été supprimé par marionnette puis remplacé par yum lors de la mise à jour du package. Cela a causé des problèmes jusqu'à ce que la prochaine exécution de marionnettes supprime le fichier. Notre solution de contournement pour cette situation était de définir le contenu du fichier "supprimé" sur un commentaire afin qu'il soit essentiellement vide. Une autre façon de le gérer serait d'essayer de garantir que le package ['a'] -> Fichier ['/ etc / a'] de sorte qu'une seule exécution de marionnettes soit nécessaire.