“Неподдерживаемый osfamily: Linux” при попытке установить Apache с помощью Марионетки

Я пытаюсь установить простую Марионеточную установку на AWS EC2 с помощью последнего Amazon Linux AMI.

Я выполнил руководство по установке для RHEL и имею a puppetmasterd демон, работающий.

Когда применяют следующую декларацию в /etc/puppet/manifests/site.pp:

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

Я получаю ошибку:

[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

От version.pp из модуля Apache для Марионетки I видят, почему декларации не удается установить Apache, но я не могу понять, почему Facter сообщает osfamily как "Linux" во-первых:

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

Кто-либо какие-либо идеи, как я могу разрешить это?

3
задан 22 March 2015 в 00:39
3 ответа

Не используйте Amazon Linux. Модуль Apache Puppet Labs несовместим с Amazon Linux. Вам нужно будет использовать один из дистрибутивов, с которыми он совместим, или создать свой собственный модуль Puppet.

4
ответ дан 3 December 2019 в 05:03

Посмотрев на него свежим взглядом сегодня, я обнаружил, что Facter v1.7.0 включает исправление, которое правильно классифицирует Amazon Linux как «RedHat»: https: / /github.com/puppetlabs/facter/commit/c12d3b6c557df695a7b2b009da099f6a93c7bd31

Теперь я знаю, почему об этом сообщается неправильно, мне нужно знать, почему я не устанавливаю Facter v1.7.0 из репозитория PuppetLabs Yum, который выходит за рамки этого вопроса.

3
ответ дан 3 December 2019 в 05:03

Проблема, похоже, в файле /usr/lib/ruby/site_ruby/1.8/facter/osfamily.rb

, который в конечном итоге использует операционную систему в качестве osfamily в случай Amazon Linux.

Строка 19:

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

и должна быть:

 when "RedHat", "Fedora", "CentOS", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "OracleLinux", "OVS", "OEL", "Amazon"
1
ответ дан 3 December 2019 в 05:03

Теги

Похожие вопросы