首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木偶:不同节点上资源之间的关系

木偶:不同节点上资源之间的关系
EN

Stack Overflow用户
提问于 2013-12-02 09:55:43
回答 4查看 2.3K关注 0票数 5

我知道我们可以指定资源之间的关系,这决定了部署顺序。但是,是否有可能在木偶中的不同节点上创建资源之间的关系?

例如,我在节点A中有apache web服务器,在节点B中有mysql服务器。我希望在启动apache服务器之前先启动mysql。我如何用木偶语言来表达这一点呢?

我试过以下密码:

代码语言:javascript
复制
node ‘host1’ {
  @@service { ‘mysql’:
    ensure => running,
    tag => ‘host1-mysql’,
  }
}
node ‘host2’ {
  service { ‘apache2’:
    ensure => running,
  }
  Service<<| tag == ‘host1-mysql’ |>> -> Service[‘apache2’]
}

但是它没有工作-产生了编译错误。还有其他解决办法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-16 13:58:20

在分布式“傀儡”设置中,应用顺序不能得到保证。

傀儡不跨多个节点执行编排。充其量,您的更改将多次应用于机器上,最终将收敛到所需的状态

依赖项仅在同一节点中工作。实际上,您可以获得由其他节点导出的资源值(例如配置数据库的防火墙以允许web服务器执行sql),或者使用hiera进行欺骗,以知道谁具有" db“和"app”角色。

有关编排,请参阅集体、capistrano、可抗等工具。

票数 5
EN

Stack Overflow用户

发布于 2013-12-02 10:06:54

每当资源依赖于另一个资源时,请使用“前”或“要求”元参数,或使用->链接资源。每当资源需要刷新时,当另一个资源发生变化时,请使用notify订阅元参数或使用~>链接资源。有些资源将自动需要其他资源,如果他们看到它们,这可以节省您的一些精力。

要获得更高的精度,请参考链接

在声明/实例化这些类的init.pp中,用参数化类语法替换include语句:

class {"taskname":} -> class {"taskname2":}

这将确保在taskname2之前调用任务名。

检查链接

票数 0
EN

Stack Overflow用户

发布于 2013-12-03 15:24:48

搜索一下puppet node dependency,就会发现一些关于导出资源的链接,这似乎是可行的。

根据exported.html

导出的资源允许节点彼此共享信息。

基本上,您可以在它所属的节点中导出一个资源,并在需要它的节点中收集它,并像往常一样使用依赖箭头。

MCollective似乎也是一个替代方案,但似乎是一个全新的框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20325371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档