2

https://github.com/puppetlabs/puppetlabs-mysqlの Puppet モジュールを使用していますが、何らかの理由で apt-get 更新に関するエラーが発生し続けています。

正確なエラー メッセージは、ここで確認できます。

何らかの奇妙な理由で、MySQL クラスが他の何よりも先に実行され、私の apt-get update コマンドが実行されます。

apt-updateMySQL モジュールの前にコマンドを確実に実行する方法はありますか?

ここで、私の現在の default.pp マニフェストを見つけることができます

apt-update コマンドが最初に実行されるようにさまざまな方法を試しましたが、何も機能していないようです。148行目で、次のコードを試しました。

package { 'mysql': ensure => "installed", require => Exec['apt-update'], }

しかし、これは私の問題を解決しませんでした。

これを修正する方法についてのアイデアが不足しています。

4

3 に答える 3

5

Puppet プロビジョニングの前に apt-get 更新が確実に行われるようにするために、Puppet を定義する前に Vagrantfile に次のコマンドを配置しました。

config.vm.provision :shell, :inline => "apt-get update --fix-missing"

于 2013-01-23T09:41:43.673 に答える
0

「インストール済み」を囲む引用符を削除するのと同じくらい簡単かもしれませんし、既にインストールされている場合は、mysql を更新するために最新のものを確認する必要があるかもしれません:

package { 'mysql': 
  ensure  => latest, 
  require => Exec['apt-update'], 
} 
于 2013-01-23T02:02:50.533 に答える
0

パペットで実行順序を設定する必要があります。puppet mysql モジュールを使用する場合、さまざまなクラスが付属しています。これらは(現在):

**Public classes**
mysql::server: Installs and configures MySQL.
mysql::server::account_security: Deletes default MySQL accounts.
mysql::server::monitor: Sets up a monitoring user.
mysql::server::mysqltuner: Installs MySQL tuner script.
mysql::server::backup: Sets up MySQL backups via cron.
mysql::bindings: Installs various MySQL language bindings.
mysql::client: Installs MySQL client (for non-servers).

したがって、APT モジュールを最初に設定するには、使用しているすべての mysql モジュール クラスの実行順序を設定します。例えば:

Class['apt'] -> Class['mysql::server'] -> Class['mysql::client'] -> Class['mysql::bindings']

これで、puppet スクリプト内のすべての SQL 関連が apt の後に実行されます。

于 2014-04-03T15:06:52.900 に答える