web-dev-qa-db-ja.com

Puppetを使用してApacheをインストールしようとすると、「サポートされていないosfamily:Linux」

最新のAmazonLinuxAMIを使用してAWSEC2で簡単なPuppetセットアップをセットアップしようとしています。

[〜#〜] rhel [〜#〜] のインストールガイドに従い、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

Puppet用のApacheモジュールの version.pp から、マニフェストが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
JoeNyland

AmazonLinuxは使用しないでください。 Puppet Labs Apacheモジュール はAmazonLinuxと互換性がありません。互換性のあるディストリビューションの1つを使用するか、独自のPuppetモジュールを作成する必要があります。

4
Michael Hampton

今日、新鮮な目でそれを見た後、Facter v1.7.0には、AmazonLinuxを「RedHat」として正しく分類する修正が含まれていることがわかりました。 https://github.com/puppetlabs/facter/ commit/c12d3b6c557df695a7b2b009da099f6a93c7bd31

これで、誤って報告される理由がわかりました。PuppetLabsYumリポジトリからFacterv1.7.0がインストールされない理由を知る必要があります。これは、この質問の範囲外です。

3
JoeNyland

問題はファイル/usr/lib/Ruby/site_Ruby/1.8/facter/osfamily.rbにあるようです

これは、Amazon Linuxの場合、osオペレーティングシステムをosfamilyとして使用することになります。

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
Todd OConnell