Notificado quando um arquivo controlado pelo fantoche for alterado pelo yum

13

É possível receber uma notificação no console quando um pacote contendo um arquivo que é controlado pelo fantoche está prestes a mudar esse arquivo? Significado, no yum ao fazer atualização yum, é possível injetar um aviso personalizado?

    
por Brian 15.10.2013 / 18:29

3 respostas

22

O Yum suporta plugins, então é perfeitamente possível escrever um plugin que leia o manifesto de fantoches em cache e avisa quando uma transação irá sobrescrever um arquivo controlado por fantoches. Eu não estou ciente de um plugin existente que faz isso, mas eu provavelmente irá escrever apenas escrevi um para mim como eu gosto da idéia.

O plug-in verifica todos os pacotes recém-instalados / atualizados / rebaixados, informa quais arquivos gerenciados por fantoches ele irá sobrescrever e solicita uma confirmação para fazê-lo.

    [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!

O próprio plug-in pode ser encontrado no meu repositório de hacks do github .

Nov. 8 atualização 2013:

Como sugerido nos comentários, eu agora transformei isso em um projeto maior para melhorar a interação entre Yum e Puppet. Você pode encontrar no GitHub .

    
por 16.10.2013 / 22:22
2

Sim, é possível, mas não se relaciona com o próprio Puppet.

Os sistemas Linux têm suporte para o mecanismo inotify que "pode ser usado para monitorar e atuar sobre eventos do sistema de arquivos". Além de inotify-tools também existe incron programa que funciona de forma semelhante ao cron, mas reage aos eventos do sistema de arquivos. Eu acho que você pode usá-lo para ser notificado sobre a alteração de qualquer arquivo.

(BTW, se você quiser assistir /etc/sysctl.conf arquivo eu sugiro para verificar antes de fazê-lo - é o seu Linux tem suporte para o diretório /etc/sysctl.d ?)

    
por 16.10.2013 / 21:31
0

Não sei como implementar essas notificações. Pode ser possível configurar algo preparando a transação do yum, determinando a lista de arquivos de configuração que podem ser afetados e, em seguida, verificando se o fantoche gerencia qualquer um deles.

No entanto, em geral, não é recomendável gerenciar um arquivo que será atualizado por um pacote. No caso de arquivos de configuração (use rpm -qlc packagename para ver se eles estão marcados como tal), se o pacote contiver uma nova versão, ele será salvo como filename.rpmnew. Você é deixado em seus próprios dispositivos para mesclar as alterações necessárias.

Nós nos deparamos com um problema em que um arquivo de configuração foi removido pelo fantoche e depois substituído pelo yum quando o pacote foi atualizado. Isso causou problemas até a próxima execução de fantoches remover o arquivo. Nossa solução para essa situação era definir o conteúdo do arquivo "removido" para um comentário, portanto, ele está essencialmente vazio. Outra maneira de lidar com isso seria tentar garantir que o pacote ['a'] - > Arquive ['/ etc / a'] para que apenas uma corrida de marionetes seja necessária.

    
por 15.10.2013 / 20:33

Tags