私はpuppet
を初めて使用しました。学習プロセスのために、Puppet Master
およびPuppet Slave
セットアップを作成し、mysql
モジュールを構成してPuppet client
にmysqlをインストールしました。以下はマニフェストファイルです。
class mysql {
package { ["mysql-server-5.5", "libaio1", "libdbd-mysql-Perl", "libdbi-Perl", "libhtml-template-Perl", "libmysqlclient18", "mysql-client-5.5", "mysql-common", "mysql-server-core-5.5"]:
ensure => present,
allowcdrom => 'true',
}
}
package
リソースには、mysql-serverのすべての依存関係が含まれています。しかし、以下のエラーが発生します。
Building dependency tree...
Reading state information...
The following extra packages will be installed:
mysql-common
The following NEW packages will be installed:
libmysqlclient18 mysql-common
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 738 kB of archives.
After this operation, 3513 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
mysql-common libmysqlclient18
E: There are problems and -y was used without --force-yes
Error: /Stage[main]/Mysql/Package[libmysqlclient18]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install libmysqlclient18' returned 100: Reading package lists...
エラー出力に記載されているようにinstall_options: "--force-yes"
も追加してみましたが、それでも同じ問題が発生します。
これに関するどんな助けでもありがたいです。
以下のマニフェストを試すことができます。問題は、依存関係を自動的に解決してインストールするために、-f
の--allow-unauthenticated
およびapt-get
オプションを追加する必要があることです。これらのフラグが追加されたら、依存パッケージをpackage
リソースに追加する必要はありません。
class mysql {
package { ["mysql-server-5.5"]:
ensure => present,
allowcdrom => 'true',
install_options => ['--allow-unauthenticated', '-f'],
}
}
私が見るところによると、あなたはUbuntuを使用しているため、Aptパッケージマネージャーを使用しています。発生しているエラーは、パッケージの公開鍵が見つからないパッケージをインストールしたことが原因です。
次の理由が考えられます。
apt-get update
インストールを行う前にソースを更新します。次の2つの解決策があります。
または、Puppetで以下を使用して、欠落しているキーを無視するようにAptを構成します。
class {'::apt': disable_keys: true}
上記はPppetLabs Apt
モジュール。
キーを無効にする前に、最初のオプションを確認します。正確な原因/解決策を提供するのに十分な詳細を提供していませんが、上記は正しい方向にあなたを導くはずです。