0

作为平台设置编排的一部分,我们使用我们的 python 包在云中的机器集群上安装各种软件包。

我们有以下场景:

  1. 我们的 python 包启动某些软件包的安装(例如 A、B、C),然后同时启动某些其他软件包(例如 D、E、F)的安装。(注意:D、E、F 来自我们的厨师食谱,A、B、C 来自我们的 python 程序)

  2. 我们的问题是软件 D(通过厨师食谱安装)依赖于软件 A。

  3. 由于 D 依赖于 A,因此 D 的食谱在系统中找不到 A 并失败。

我在想的是,如果我们可以在厨师食谱中有一个依赖项,说只有在系统中找到 A 时才继续,否则等待!

可能吗?上述问题有其他选择吗?

谢谢

4

2 回答 2

0

您可以考虑使用puppet。Whit puppet 您可以定义所需的资源(例如package),还可以定义资源之间的关系

例如木偶清单:

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

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

更新:更新了示例木偶清单。

于 2015-06-23T08:52:26.810 回答
0

我应用了以下步骤来解决我的问题

  1. 找到安装独立软件后创建的目录
  2. 等待目录创建(使用 ruby​​ 块代码进行睡眠)并在此后启动依赖软件的安装以确保满足依赖关系。

解决了我的问题..

于 2015-07-13T09:20:08.427 回答