问题标签 [molecule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1205 浏览

ansible - ansible 角色的分子测试 - 如何构建以避免重复

我有很多想要通过 测试的角色molecule,而且我是molecule初学者。

如果我在每个角色中创建一个分子场景,就会有大量的重复代码。

是否存在人们用来避免具有相同 , 等的许多角色的Dockerfile.j2模式molecule.yml

也许某种组合(通过依赖注入)或者如果这不可行某种继承?

0 投票
2 回答
360 浏览

python - `pip install docker-py` vs `pip install 'molecule[docker]'`?

我见过人们使用pip install docker-pyor pip install 'molecule[docker]'

我相信它们是相似的(等效的?)

我读了https://molecule.readthedocs.io/en/stable/getting-started.html 它说:

Molecule 需要 Docker 驱动程序的外部 Python 依赖项,该依赖项在使用pip install 'molecule[docker]'.

那么molecule[docker]在某些方面更好吗?

0 投票
2 回答
219 浏览

ansible - 使用分子和 gilt 测试依赖 Ansible 角色,零文档

目前正在为我的公司构建多个 Ansible 角色,其中一些将被标记为相互依赖(就像部署 [应用程序] 容器角色,它依赖于要安装的角色 docker)。

我们通过分子运行我们的自动化测试 但是,由于我们有自己的本地源代码控制并将这些角色上传到 ansible-galaxy 不是一个选项,我希望能够为依赖角色运行自动化测试以及这将要求它们被导入。分子的文档显示有一个名为 Gilt 的替代依赖管理器。

虽然不存在关于此的进一步文档,但我想知道是否有人有一个示例说明如何将此角色标记为依赖于另一个角色,以便在分子测试运行期间导入它。这里的一个重要注意事项是私有存储库不能被克隆,Azure DevOps on premise 2019 不允许将任何存储库设置为“公共”,因此即使是克隆也需要身份验证

0 投票
2 回答
1575 浏览

docker - 如何测试 ansible 角色?

设想

我想开发ansible角色。这些角色应该通过 CI/CD 流程与分子进行验证,并利用 docker 作为驱动程序。这个验证步骤应该包括多个 Linux 风格(例如 centos/ubuntu/debian)乘以支持的 ansible 版本。

然后应该执行测试,以便通过以下方式验证角色


手头的问题

  1. 没有可用的官方 ansible 图像
  2. 如何最好地测试角色的 ansible 版本兼容性?

问题 1:没有官方的 ansible 图像

ansible 团队的官方图片已经弃用了大约 3 年:

此外,由于结果数量庞大,不推荐使用的图像所指的链接以查找支持 ansible 的新图像非常无用

https://hub.docker.com/search/?q=ansible&page=1&isAutomated=0&isOfficial=0&pullCount=1&starCount=0

社区(或 ansible)是否有一个维护良好的 ansible docker 镜像来填补空白?

最好使用可以拉取的多个版本以及定期构建和验证创建的映像的 CI 流程。

为什么我要寻找 ansible 图像?我不想重新发明轮子(如果可能的话)。我想使用图像通过分子测试 ansible 角色的版本不兼容性。

我搜索但找不到任何真正有用的东西。您使用什么图像在容器/协调器中运行 ansible?您自己构建和维护图像吗?

例如https://hub.docker.com/r/ansibleplaybookbundle/apb-base/tags

看起来很有希望,然而,那里的图像也有超过 7 个月的历史(至少)。


问题 2:如何最好地测试角色的 ansible 版本兼容性?

为 OS 和 ansible 版本的每个组合创建 docker 映像是通过分子和 docker 作为驱动程序进行测试的最佳方式吗?或者是否有更聪明的方法来测试 ansible 角色与多个操作系统时间不同的 ansible 版本的向后兼容性?

我已经用分子和 docker 作为驱动程序测试了我的 ansible 角色。这些测试目前仅测试角色在各种 Linux 发行版上的功能,而不是通过使用旧版 ansible 运行角色来测试 ansible 向后兼容性。

这里是一个基于 geerlingguy 的 ntp 角色对 centos7/ubuntu1604/ubuntu1804 进行 travis 测试的示例角色:https ://github.com/Gepardec/ansible-role-ntp

0 投票
1 回答
336 浏览

ansible - 分子:如何查看有关受管理机器的“事实”,例如“ansible -m setup instance1”

我知道 ansible,我可以根据ansible -m setup instance1 问题使用查看有关管理机器的“事实”: 我在哪里可以获得 Ansible 预定义变量的列表?

但是我正在使用分子,所以对于我instance1通过分子创建的 docker 容器是否有相同的方法

我的原因是试图理解为什么尽管做了一个gather_facts我得到了我的分子日志......

供参考这里是我的分子设置...

0 投票
1 回答
7303 浏览

amazon-ec2 - 如何在模板化字符串时修复模板错误:没有使用分子 ec2 驱动程序命名为“molecule_from_yaml”的过滤器

我正在运行一个 Molecule v2.22,我想使用分子启动一个 ec2 实例,以测试我的 ansible 剧本。
但是当分子到达 Detroy 并创建实例阶段时,我遇到了错误。

我也不明白为什么molecule 会跳过/usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/filters/molecule_core.py插件,我相信它可能负责名为molecule_from_yaml的过滤器

请参阅以下错误:

下面是销毁先前创建的实例(如果有的话)的 destroy.yml 文件。

下面是create.yml

我希望我已经为这个问题提供了足够的信息

0 投票
1 回答
4780 浏览

docker - 如何为分子内部剧本任务设置 no_log: true?

我正在测试与分子和组合的版本兼容性

python 3.8 x ansible 最新 x debian

分子在实例创建步骤中中断

https://travis-ci.com/ckaserer/ansible-role-example/jobs/256557752

为了进一步调试,我需要设置no_log: false.

关于如何为分子自己的内部剧本设置 no_log 为 true 的任何想法?

我试过了MOLECULE_DEBUG,但这并没有奏效。
搜索分子的文档也没有给出任何结果。运行分子与

也不会将 no_log 的分子剧本变量设置为 false

0 投票
1 回答
4491 浏览

docker - Debian 映像 - 未找到 /sbin/init

我正在尝试使用/sbin/init通过分子进行 ansible 角色测试的过程来启动 Debian 映像。

是的,我知道,/sbin/init除非您确实有这样做的用例,否则不应从容器中开始。使用分子,我可以在 docker 容器中测试我的 ansible 角色。因此我需要/sbin/init跑步。

当我执行

但是,使用 debian:8 可以正常工作。

奇迹般有效。

Debian 是否已切换到新的引导过程?发生了什么变化?

0 投票
0 回答
34 浏览

unit-testing - 如何在使用 Molecule 的专用测试机内运行 ansible 角色后撤消更改

当使用 docker 作为驱动程序时,Molecule 正在容器内测试我的 Ansible 角色,然后将其销毁。但是,我的测试类型是内核级别的,所以我不能使用 Docker。我正在使用专用的测试机。

我想在每次运行测试时添加一个后备脚本来撤消我的更改。有什么建议来处理这个吗?在哪里添加脚本?

0 投票
1 回答
1567 浏览

ansible - 在 Molecule 中使用 testinfra 作为验证器时如何调试测试

使用分子工具测试 ansible 角色并使用 testinfra(pytest) 验证结果时,我无法打印或调试某些输出或 ansible 变量。

有没有办法做到这一点?