如何解决如何实现一种状态,等待其他小兵完成某些工作然后执行某些状态?
如何实现一种状态,等待其他小兵完成某些工作然后执行某些状态?
例如,我有一个名为minion-aha1到minion-aha3的奴才集群,并且在这3个奴才上安装了hadoop和hbase。现在,我想将它们转换为HA模式。假设minion-aha1是领导者。因此,逻辑流程为:
Start hadoop and hbase on all 3 minions
-> minion-aha1 wait till rest of minions are hadoop and hbase are on and healthy
-> minion-aha1 call join (e.g. stop namenode,hdfs namenode -initializeSharedEdits,start namenode)
-> rest minions call nn2 (e.g. hdfs namenode -bootstrapStandby,start namenode)
我已经知道如何将hbase转换为HA模式,并且我可以设置谷物的领导者,只是很好奇如何将上述过程缩小到单行,即
salt 'minion-aha*' state.apply hadoop.hbase_to_ha
甚至是salt.orch状态都可以接受。由于minion-aha1永远不知道其余小兵的状态,因此上述操作将失败。换句话说,如果开发人员幸运的话,它可能成功运行一次,但我希望解决方案每次都能成功运行。
谢谢。
解决方法
如果要在不使用业务流程SLS的情况下解决此问题,则可以查看以下方法之一:
- 使用imap-simple将一个小兵的信息发布到Master,然后其他人可以检索该信息
- 使用Salt Mine允许一个Minion生成要在另一个上执行的作业
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。