Puppet for Patch Management

1

Estou pensando em usar o Puppet para gerenciamento massivo de patches.

O caminho a seguir, com base em algumas pesquisas, é criar uma classe e aplicá-la onde você precisar, como no seguinte caso:

class mypack_update {
  package { 'mypack':
   # ensure => '1.0.1d-15.el6',
    ensure  => '1.0.1g-16.el6_5.7',
  }
}

No entanto, isso parece não ser prático, especialmente se você tiver centenas de patches disponíveis, do kernel ao ssl, bash etc em muitas máquinas.

Existe alguma prática recomendada que eu possa seguir para tornar isso mais fácil?

A distro Linux que mais usamos é o SLES 11.3.

    
por trikelef 21.01.2015 / 13:17

2 respostas

1

A forma como o fazemos é usar "ensure = > 'latest'", no entanto, isso é feito contra um repositório controlado já testado. fica mais complicado se o seu ambiente tiver papéis diferentes com requisitos diferentes, então você precisa usar os fatos como um mecanismo sensorial para determinar qual patch se aplica a qual função, fazemos isso no hiera. depois de ter feito isso por um ano ou mais, acredito que a resposta certa seria a integração do fantoche com o sistema de gerenciamento de recompra, como o celulose, e é exatamente isso que o Satellite 6 está fazendo.

    
por 20.10.2016 / 06:13
0

Supondo que a impraticabilidade mencionada é a geração de tal classe, isso poderia ser feito com alguns scripts. Combinado com o hiera , você pode ter uma lista .yaml de pacotes com um ID de versão, e seu configuração de fantoches poderia ser assim:

hieradata / patchlist.yaml :

---
packages:
  mypack:
    ensure: 1.0.1g-16.el6_5.7
  otherpack:
    ensure: latest
  otherpacktwo:
    ensure: 2.0.1

yourclass.pp

class patchset {
    create_resources('packages')
}

Quanto à parte de script, algum awk / perl-fu aplicado ao comando rpm -qa em um servidor que você conhece tem as correções corretas deve fazer o trabalho.

    
por 21.01.2015 / 14:32