“Osfamily não suportada: Linux” ao tentar instalar o Apache usando o Puppet

3

Estou tentando configurar uma configuração simples do Puppet no AWS EC2 usando o Amazon AMI mais recente do Amazon.

Eu segui o guia de instalação do RHEL e tenho um daemon puppetmasterd em execução.

Quando aplicar o seguinte manifesto em /etc/puppet/manifests/site.pp :

node 'ip-172-31-1-239.eu-west-1.compute.internal' {
  class { 'apache': }
}

Eu recebo o erro:

[ec2-user@ip-172-31-1-239 ~]$ sudo puppet agent --test
info: Loading facts in /etc/puppet/modules/concat/lib/facter/concat_basedir.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Class['apache::version']: Unsupported osfamily: Linux at /etc/puppet/modules/apache/manifests/version.pp:37 on node ip-172-31-1-239.eu-west-1.compute.internal
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

De version.pp do módulo do Apache para o Puppet I posso ver porque o manifesto está falhando ao instalar o Apache, mas não consigo entender por que o Facter está relatando o osfamily como "Linux" em primeiro lugar:

[ec2-user@ip-172-31-1-239 ~]$ facter | grep osfamily
osfamily => Linux

[ec2-user@ip-172-31-1-239 ~]$ rpm -qa | grep facter
facter-1.6.18-7.25.amzn1.noarch

[ec2-user@ip-172-31-1-239 ~]$ rpm -qa | grep puppet
puppetlabs-release-6-11.noarch
puppet-2.7.25-1.4.amzn1.noarch
puppet-server-2.7.25-1.4.amzn1.noarch

[ec2-user@ip-172-31-1-239 ~]$ sudo puppet module list
/etc/puppet/modules
├── puppetlabs-apache (v1.4.0)
├── puppetlabs-concat (v1.2.0)
└── puppetlabs-stdlib (v4.5.1)
/usr/share/puppet/modules (no modules installed)

Alguém tem alguma idéia de como eu posso resolver isso?

    
por JoeNyland 21.03.2015 / 23:39

3 respostas

4

Não use o Amazon Linux. O módulo Apache do Puppet Labs não é compatível com o Amazon Linux. Você precisará usar uma das distribuições com as quais é compatível ou criar seu próprio módulo Puppet.

    
por 21.03.2015 / 23:53
3

Depois de olhar para ele com um novo par de olhos hoje, descobri que o Facter v1.7.0 inclui uma correção que classifica o Amazon Linux como "RedHat" corretamente: link

Agora eu sei porque está sendo relatado incorretamente, eu preciso saber por que não estou recebendo o Facter v1.7.0 instalado no repositório PuppetLabs Yum, que está fora do escopo desta questão.

    
por 22.03.2015 / 12:00
1

O problema parece estar no arquivo /usr/lib/ruby/site_ruby/1.8/facter/osfamily.rb

que acaba usando o sistema osoperatings como osfamily no caso do Amazon Linux.

A linha 19 é:

 when "RedHat", "Fedora", "CentOS", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "OracleLinux", "OVS", "OEL"

e deve ser:

 when "RedHat", "Fedora", "CentOS", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "OracleLinux", "OVS", "OEL", "Amazon"
    
por 24.08.2015 / 03:24