답변:
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에서 찾을 수 있습니다 .
예, 가능하지만 꼭두각시 자체와 관련이 없습니다.
Linux 시스템은 "파일 시스템 이벤트를 모니터하고 수행하는 데 사용할 수있는" inotify 메커니즘을 지원합니다 . 게다가 cron과 유사하게 작동하지만 파일 시스템 이벤트에 반응하는 프로그램 inotify-tools
도 incron
있습니다. 파일 변경에 대한 알림을 받기 위해 사용할 수 있다고 생각합니다.
(BTW, /etc/sysctl.conf
파일 을보고 싶다면 전에 확인하는 것이 좋습니다-Linux에서 /etc/sysctl.d
디렉토리 를 지원 합니까?)
그러한 알림을 구현하는 방법을 모르겠습니다. yum 트랜잭션을 준비하고 영향을받을 수있는 구성 파일 목록을 확인한 다음 꼭두각시가 해당 파일을 관리하는지 확인하여 무언가를 설정할 수 있습니다.
그러나 일반적으로 패키지에서 업데이트 할 파일을 관리하는 것은 좋지 않습니다. 구성 파일의 경우 (rpm -qlc packagename을 사용하여 표시되어 있는지 확인) 패키지에 새 버전이 포함되어 있으면 filename.rpmnew로 저장됩니다. 그런 다음 필요한 변경 사항을 병합하기 위해 자신의 장치를 사용합니다.
구성 파일이 꼭두각시에 의해 제거 된 다음 패키지가 업데이트 될 때 yum으로 대체되는 문제가 발생했습니다. 다음 번 퍼펫 실행으로 파일이 제거 될 때까지 문제가 발생했습니다. 이 상황에 대한 해결 방법은 "제거 된"파일의 내용을 주석으로 설정하여 본질적으로 비어있는 것입니다. 이를 처리하는 또 다른 방법은 하나의 퍼펫 실행 만 필요하도록 Package [ 'a']-> File [ '/ etc / a']를 확인하는 것입니다.