꼭두각시로 제어되는 파일이 yum에 의해 변경 될 때 알림


13

꼭두각시로 제어되는 파일이 포함 된 패키지가 해당 파일을 변경하려고 할 때 콘솔에서 알림을받을 수 있습니까? yum 업데이트를 수행 할 때 yum에서 사용자 정의 경고를 삽입 할 수 있습니까?

답변:


22

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에서 찾을 수 있습니다 .


사랑 스럽습니다. 그러나 실제로 덮어 쓰지는 않기 때문에 % config (noreplace) 항목을 무시하는 것이 좋습니다.
freiheit

예, 추가 할 계획입니다. 이 질문은 나에게 많은 아이디어를 주었다 :)
Dennis Kaarsemaker

와 ! 당신은 정말로 의무의 부름을 넘어 섰습니다. 내가 감동. 이것은 내 질문이 해결하려고했던 것입니다. 나는 쉘 스크립트를 생각하고 있었지만 이것은 훨씬 낫다! 이제 플러그인을 yum에 설치했지만 꼭두각시 플러그인을로드하지 않습니다. 왜 그런지 알아? .pyc 파일을 볼 수 있지만 rhnplugin 및 security와 같은 .pyo 파일이 없습니다.
Brian

신경 쓰지 마라, 나는 PyYAML을 설치해야했다.
Brian

소프트웨어 라이센스를 추가 할 수 있습니까?
Brian

2

예, 가능하지만 꼭두각시 자체와 관련이 없습니다.

Linux 시스템은 "파일 시스템 이벤트를 모니터하고 수행하는 데 사용할 수있는" inotify 메커니즘을 지원합니다 . 게다가 cron과 유사하게 작동하지만 파일 시스템 이벤트에 반응하는 프로그램 inotify-toolsincron있습니다. 파일 변경에 대한 알림을 받기 위해 사용할 수 있다고 생각합니다.

(BTW, /etc/sysctl.conf파일 을보고 싶다면 전에 확인하는 것이 좋습니다-Linux에서 /etc/sysctl.d디렉토리 를 지원 합니까?)


0

그러한 알림을 구현하는 방법을 모르겠습니다. yum 트랜잭션을 준비하고 영향을받을 수있는 구성 파일 목록을 확인한 다음 꼭두각시가 해당 파일을 관리하는지 확인하여 무언가를 설정할 수 있습니다.

그러나 일반적으로 패키지에서 업데이트 할 파일을 관리하는 것은 좋지 않습니다. 구성 파일의 경우 (rpm -qlc packagename을 사용하여 표시되어 있는지 확인) 패키지에 새 버전이 포함되어 있으면 filename.rpmnew로 저장됩니다. 그런 다음 필요한 변경 사항을 병합하기 위해 자신의 장치를 사용합니다.

구성 파일이 꼭두각시에 의해 제거 된 다음 패키지가 업데이트 될 때 yum으로 대체되는 문제가 발생했습니다. 다음 번 퍼펫 실행으로 파일이 제거 될 때까지 문제가 발생했습니다. 이 상황에 대한 해결 방법은 "제거 된"파일의 내용을 주석으로 설정하여 본질적으로 비어있는 것입니다. 이를 처리하는 또 다른 방법은 하나의 퍼펫 실행 만 필요하도록 Package [ 'a']-> File [ '/ etc / a']를 확인하는 것입니다.


꼭두각시에서 "패키지가 업데이트 할 파일을 관리하는 것은 좋지 않습니다"라는 모범 사례를 찾으려고 노력했습니다. 특히 특정 응용 프로그램을 실행하는 데 필요한 설정이 파일에 있기 때문에 sysctl.conf를 관리합니다. 그렇다면 대안은 무엇입니까?
Brian

1
yum이 만지고 싶은 꼭두각시로 구성을 관리하는 것은 절대적으로 좋습니다. RPM은 일반적으로 사용자 정의 된 구성 파일을 건드리지 않으며, 그렇게해도 꼭두각시가 컨텐츠를 복원합니다.
Dennis Kaarsemaker 2009 년

구성 파일은 존재하지 않는 경우 RPM / yum에 의해서만 업데이트됩니다. 변경 사항으로 인해 기능이 손상 될 수 있으므로 꼭두각시를 사용하여 패키지의 다른 파일을 편집하는 것은 좋은 방법이 아닙니다. 관리가 적절한 권한을 보장 할 수 있기 때문에 대답에서 "관리"보다 "편집"이라고 말하는 것이 낫습니다. 구성 파일이 아닌 파일을 편집하려면 패키지가 자동이 아닌 필요에 따라 업데이트되도록 일종의 버전 잠금 또는 제외를 구현해야합니다. 그렇게하면 전체 업데이트 프로세스를 제어 할 수 있습니다.
jdkindy 2013 년


@ 0A0D : 고마워, 그건 내가 말한 행동입니다. Dennis Kaarsemaker의 게시물에 대해 언급 할 수있는 충분한 담당자가 있었으면 좋겠습니다. 이는 우아한 해결책의 시작입니다. 또한, "php-coder로 표기된"구성 ".d"디렉토리는 패키지가 지원하는 경우 꼭두각시에서 구현하기가 매우 쉽습니다.
jdkindy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.