Como devo lidar com as instâncias do Mint com o Puppet?

4

Eu uso o Puppet para configurar VMs de tempos em tempos. Às vezes eu executo o Linux Mint nessas VMs. Eu tenho muitos módulos Puppet que eu gosto de usar, mas quando eles verificam os fatos do LSB eles recuam da estranha versão do Linux Mint.

Por exemplo, estou usando o módulo Java oficial do Puppet Labs para instalar o JDK e outros. O arquivo params.pp se parece com isso (eu eliminei muito disso):

class java::params {

  case $::osfamily {
    'RedHat': {...}
    'Debian': {
      case $::lsbdistcodename {
        default: { fail("unsupported release ${::lsbdistcodename}") }
        'lenny', 'squeeze', 'lucid', 'natty': {
          $java  = {
            'jdk' => {
              'package'          => 'openjdk-6-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-6-jre-headless...
            },
          }
        }
        'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty', 'utopic': {
             ...I could add 'rebecca' to the above list, and that would probably do it
          $java =  {
            'jdk' => {
              'package'          => 'openjdk-7-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-7-jre-headless'
            },
            'oracle-jre' => {...},
            'oracle-jdk' => {...},
          }
        }
      }
    }
...
    default: { fail("unsupported platform ${::osfamily}") }
  }

quando eu executo o agente na instância do Mint, eu finalmente obtenho:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: unsupported release rebecca at /etc/puppet/modules/java/manifests/params.pp:50 on node some.host.com

rebecca é a versão do Linux Mint que estou lidando no momento, que corresponde ao Ubuntu Trusty.

Mas cada versão do Mint é baseada em uma versão do Ubuntu, e isso deve funcionar bem. (Ótimo o suficiente para tentar, pelo menos.) Eu realmente gostaria de dizer ao facter para retornar a informação equivalente do Ubuntu lsb, ao invés de modificar o módulo, e todos os outros módulos como ele. Embora isso possa ser um serviço para a comunidade ...

Alguém tentou resolver este problema? Idéias?

    
por Ladlestein 09.01.2015 / 01:32

1 resposta

1

Esta página parece indicar que você pode ignorar os fatos do Facter definindo uma variável de ambiente :

# show the operating system we are running (retrieved from facter)
$ puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Fedora

# override $operatingsystem for testing purposes
$ FACTER_operatingsystem=Debian puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Debian

Nesse caso, você poderia criar cada host rebecca com a variável FACTER_lsbdistcodename=trusty ?

Eu não testei isso, mas os fatos são simplesmente coisas relatadas pelo nó e, como tal, devem ser facilmente substituíveis / editáveis ...

    
por 04.02.2015 / 12:53