Puppet
使用 puppet 安裝具有依賴項的軟體包
我是新手
puppet
,在學習它的過程中,我創建Puppet Master
並Puppet Slave
設置並配置了一個mysql
模組來安裝 mysqlPuppet client
。下面是清單文件。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
在進行安裝之前,您需要更新您的原始碼。- 或者您需要手動導入密鑰。
您有兩種可能的解決方案:
- 導入密鑰
- 忽略失去的密鑰
- 或者在 Puppet 中使用以下內容來配置 Apt 以忽略失去的鍵。
class {'::apt': disable_keys: true}
以上需要
PppetLabs Apt
模組。我會在禁用鍵之前檢查第一個選項。您沒有提供足夠的詳細資訊來獲得精確的原因/解決方案,但以上內容應該能讓您朝著正確的方向前進。