質問: puppetを使用して依存関係のあるパッケージをインストールする 私はpuppetを初めて使用します。それを学習するプロセスのために、puppet masterとpuppet slaveのセットアップを作成し、puppet clientにmysqlをインストールするように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'], } }