我知道我们可以指定资源之间的关系,这决定了部署顺序。但是是否可以在 Puppet 中的不同节点上的资源之间创建关系呢?
例如,我在节点 A 中有 apache Web 服务器,在节点 B 中有 mysql 服务器。我想在启动 apache Web 服务器之前先启动 mysql。我如何用 Puppet 语言表达这一点?
我尝试过以下代码:
node ‘host1’ {
@@service { ‘mysql’:
ensure => running,
tag => ‘host1-mysql’,
}
}
node ‘host2’ {
service { ‘apache2’:
ensure => running,
}
Service<<| tag == ‘host1-mysql’ |>> -> Service[‘apache2’]
}
但它不起作用 - 产生了编译错误。还有其他解决方案吗?
在分布式“傀儡”设置中,不保证应用顺序。
Puppet 不做编排跨多个节点。最好的情况是,您的更改将在机器上多次应用,并且最终会收敛到想要的状态.
依赖关系仅在同一节点中起作用。您实际上可以获取其他节点导出的资源值(例如配置数据库的防火墙以允许Web服务器执行sql)
或者用 hiera 作弊来知道谁拥有“db”和“app”角色。
对于编排,请参阅类似的工具集体 http://puppetlabs.com/mcollective, 卡皮斯特拉诺,ansible http://www.ansibleworks.com/,...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)