Ansible Galaxy的包装器,允许您在Requirements.yml中定义角色依赖关系。

molecule-galaxy-wrapper的Python项目详细描述


分子星系包裹器

Ansible Galaxy包装器,用作具有内部依赖支持的分子依赖插件。

动机

想象一下这个场景,您有一个名为child的角色,它依赖于一个名为parent的角色,而parent依赖于grandparent

要安装child,您的roles_path中需要有parentgrandparent

child -> parent -> grandparent

Ansible Galaxy足够聪明地发现,您所要做的就是将grandparent定义为parent角色在meta/main.yml内的依赖关系,然后将parent定义为child角色meta/main.yml文件内的依赖关系。

问题是molecule强制跟踪requirements.yml文件中的角色依赖关系,在这种情况下,您有两个选项:

  1. requirements.yml中同时包含parentchild,然后忽略meta/main.yml
  2. requirements.yml内包含parent,并在meta/main.yml内复制相同的内容

第一种方法在这样的场景中看起来可能是合理的,但您可能有一个更复杂的依赖关系,在这种情况下,您很快就会遇到大问题。

后者看起来很难看,但至少你可以将找出依赖树的责任委托给ansible galaxy。

输入脏黑客

在某些时候,我们会忘记将依赖项附加到requirements.ymlmeta/main.yml。为了避免这个问题,我创建了这个小小的包装器,它基本上可以做两件事:

  1. requirements.yml的内容复制到meta/main.yml需求列表中
  2. 运行ansible-galaxy install

用法

安装molecule-galaxy wrapper

pip install molecule-galaxy-wrapper

配置molecule.yml以使用翘曲器:

dependency:
  name: shell
  command: galaxywrapper
driver:
  name: docker
...

通过运行进行测试:

molecule dependency

现在您可以在requirements.yml文件中维护角色依赖关系。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit cucumber为什么会找到“runTest.java”来运行测试?   在Eclipse中找不到java KeyPairGenerator   java NotSerializableException即使在实现Serializable之后   noclassdeffounderror(java字符串连接)为什么会出现这种异常?   java Guice:将接口绑定到由动态代理创建的实例   使用Spring数据neo4j创建空间索引时发生java错误   java对于需要在50多个excel文件上运行并且每个文件平均包含25k行的项目,最佳的方法是什么   javaNIO中的java缓冲区写入/发送消息问题   如何在Java/eclipse中添加不调用super()的警告   JavaSpring:mvcUrl映射错误的id   java应该在getInstance或构造函数中使用Init方法吗?   安卓中的java空指针异常错误   java Jsoup不能完全获取原始html代码