当前位置: 首页 > 知识库问答 >
问题:

Ansible playbooks依赖问题

姬锐
2023-03-14

我有一个有剧本依赖的用例。我有一组主机在我所有的机器上启动应用程序,然后另一组主机是实际的机器。

现在我的问题是,ansible是否有可能只有在成功执行第一个剧本并启动应用程序时才运行第二个剧本(比方说更新一个包)。我在这里遇到的问题是,尽管第一个剧本不成功,但第二个剧本运行,应用程序没有启动

在这里,我从一台远程机器启动应用程序,该机器对我的所有机器都有权限,更新包需要在每台机器上完成。因此,它们是两个相互依赖的不同剧本。

First playbook
  hosts: A
  tasks: 
    - name: check if app started and ready
      command: x

Second Playbook
  hosts: B
  tasks:
    - name: run y command from B machine to execute on A
      command: y

这里的问题是second playbook并不关心命令X是否被执行。第一个剧本一完成(不管成功或失败,第二个剧本就开始了,因为它们属于不同的机器)

共有1个答案

韩阳成
2023-03-14

如果戏剧是直接相互依赖的,就像看起来的那样,那么我不会把它们分成不同的剧本,而是分成同一剧本中使用的角色。您需要在第一个角色的任务中注册一个变量,以便在第二个角色中使用它:

- hosts: first-set
  roles:
    - { role: update-app } # registers update_was_good

- hosts: second-set
  roles:
  - update-packages
    when: update_was_good
 类似资料:
  • 我的应用程序中使用了弹性城堡依赖项,我希望在pom.xml文件中排除此依赖项。即使从pom文件中删除此依赖项,它仍然出现在m2存储库文件夹中。我的应用程序是Spring-MVC 5框架,运行在Tomcat版本9上。部署时有两个不同版本的“bcprov”。我需要从pom.xml文件中排除bcprov-jdk14和bcprov-jdk15on。 下面是pom文件中的依赖关系。 我还尝试了另一个链接的排

  • 然而,Eclipse告诉我“没有bean可以被注入到注入点[JSR-299§5.2.1]”。我做错了什么?你有没有看到我缺少的东西。如有任何帮助,我们将不胜感激。 谢谢!!

  • 获取错误: 错误:无法解析“”的依存关系:app@debugUnitTest/compileClasspath:无法解析com。googlecode。mp4parser:isoparser:1.1.22。打开文件显示详细信息 对于依存关系: 但对于依赖: Gradle同步成功。 尝试使用存储库: 详细错误: 无法解析“”的依存关系:app@StagingUnitTest/compileClassp

  • 问题内容: 我正在设计一个系统,其中包含两个模块,一个模块孕育文件,另一个模块。对于某些逻辑运算,它们需要彼此提供的服务。 每个模块都由一个单例表示,该单例实现一个接口,该接口向彼此提供一些服务,并带有抽象工厂来提供它们,如下所示: 文件模块的主类是这样的: 我不确定自己是否正确处理了循环依赖。有什么办法可能会意外中断? 编辑 :正如下面已回答的那样,处理此问题的正确方法是注射。但是,解决此问题的

  • 对于android,我通过osmdroid和osmbonuspack使用mapsforge tiles。到目前为止,我使用了以下软件 OSMbonusPack Omsdroid mapsforge-map(依赖项)。 Salida软件解决方案,如http://www.salidasoftware.com/how-to-render-mapsforge-tiles-in-osmdroid所示 问题1

  • 我在eclipse中有一个JavaNLP项目(比如X),它在maven中有依赖项 现在,我已经使用JavaSwing为这个项目(x)构建了UI,JavaSwing是eclipse中的另一个项目(比如Y)。 当我运行项目Y(点击按钮时调用项目X)时,会给我带来错误,比如 java.lang.NoClassDefFoundError: edu/stanford/nlp/ie/NER分类文件 我认为这是