CentOS 6 マシンに LAMP をインストールするためのマニフェストを作成しています。一部の pear モジュールのインストールを除いてすべて動作します。発行すると、puppet /etc/puppet/modules/webserver/manifests/init.pp
次のメッセージが表示されます。
/etc/puppet/modules/webserver/manifests/init.pp:111 のパッケージ プロバイダー 'pear' が無効です
以下はマニフェストの関連部分です。下部の include の順序も含まれています。
class php {
package {'php':
ensure => present,
before => File['/etc/php.ini'],
}
file {'/etc/php.ini':
ensure => file,
}
$packagelist = [
"php-cli",
"php-common",
"php-devel",
"php-gd",
"php-ldap",
"php-mbstring",
"php-mssql",
"php-mysql",
"php-pear",
"php-pecl-ssh2",
"php-xml"
]
package { $packagelist:
ensure => installed,
require => Package['php'],
notify => Service['httpd'],
}
class pear {
package {
"pear":
ensure => installed,
provider => 'pear';
"pecl/zip":
ensure => installed,
provider => 'pear';
}
}
include php
include pear
一番下の行をコメントアウトするinclude pear
と、残りの部分は問題なくインストールされます。 rpm -qa | grep php-pear
は、パッケージ php-pear が正常にインストールされたことを示しています。pear
プロンプトで発行すると、期待どおりの pear ヘルプ メニューが返されます。
init.pp ファイルに戻り、コメントを解除しinclude pear
て再実行するとpuppet /etc/puppet/modules/webserver/manifests/init.pp
、同じエラーが表示されます。
何が起こったのですか?
答え1
Puppet 2.27 にアップグレードし、puppet-pear モジュールを使用することで解決しました。