0

プラットフォーム セットアップ オーケストレーションの一環として、python パッケージを使用して、クラウド内のマシンのクラスターにさまざまなソフトウェア パッケージをインストールしています。

次のシナリオがあります。

  1. 私たちのpythonパッケージは、特定のソフトウェアパッケージ(A、B、Cなど)のインストールを開始し、同時に他の特定のパッケージ(D、E、Fなど)のインストールを開始します。(NB:. D、E、F はシェフのクックブックによるもので、A、B、C は Python プログラムによるものです)

  2. 問題は、ソフトウェア D (chef cookbook からインストール) がソフトウェア A に依存していることです。

  3. D は A に依存しているため、D のクックブックはシステムで A を見つけられず、失敗します。

私が考えていたのは、A がシステムで見つかった場合にのみ続行するというシェフのクックブックに依存できる場合、それ以外の場合は待機することでした。

出来ますか?上記の問題に代わるものはありますか?

ありがとう

4

2 に答える 2

0

問題を解決するために次の手順を適用しました

  1. 独立したソフトウェアのインストール後に作成されるディレクトリを見つけました
  2. ディレクトリが作成されるのを待ち(スリープ用のルビーブロックコードを使用)、その後、依存関係が満たされるように依存ソフトウェアのインストールを開始しました。

私の問題を解決しました..

于 2015-07-13T09:20:08.427 に答える
0

puppet の使用を検討できます。必要なリソース(例: package) を定義したり、リソース間の関係を定義したりできます。

例: パペットマニフェスト:

package { ["A", "B", "C", "E", "F"]:
  ensure => 'installed',
}

package { "D":
  ensure => 'installed',
  require => Package['A'],
}

更新:パペット マニフェストの例を更新しました。

于 2015-06-23T08:52:26.810 に答える