问题标签 [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.
ansible - ansible 角色的分子测试 - 如何构建以避免重复
我有很多想要通过 测试的角色molecule
,而且我是molecule
初学者。
如果我在每个角色中创建一个分子场景,就会有大量的重复代码。
是否存在人们用来避免具有相同 , 等的许多角色的Dockerfile.j2
模式molecule.yml
?
也许某种组合(通过依赖注入)或者如果这不可行某种继承?
python - `pip install docker-py` vs `pip install 'molecule[docker]'`?
我见过人们使用pip install docker-py
or pip install 'molecule[docker]'
。
我相信它们是相似的(等效的?)
我读了https://molecule.readthedocs.io/en/stable/getting-started.html 它说:
Molecule 需要 Docker 驱动程序的外部 Python 依赖项,该依赖项在使用
pip install 'molecule[docker]'
.
那么molecule[docker]
在某些方面更好吗?
ansible - 使用分子和 gilt 测试依赖 Ansible 角色,零文档
目前正在为我的公司构建多个 Ansible 角色,其中一些将被标记为相互依赖(就像部署 [应用程序] 容器角色,它依赖于要安装的角色 docker)。
我们通过分子运行我们的自动化测试 但是,由于我们有自己的本地源代码控制并将这些角色上传到 ansible-galaxy 不是一个选项,我希望能够为依赖角色运行自动化测试以及这将要求它们被导入。分子的文档显示有一个名为 Gilt 的替代依赖管理器。
虽然不存在关于此的进一步文档,但我想知道是否有人有一个示例说明如何将此角色标记为依赖于另一个角色,以便在分子测试运行期间导入它。这里的一个重要注意事项是私有存储库不能被克隆,Azure DevOps on premise 2019 不允许将任何存储库设置为“公共”,因此即使是克隆也需要身份验证
docker - 如何测试 ansible 角色?
设想
我想开发ansible角色。这些角色应该通过 CI/CD 流程与分子进行验证,并利用 docker 作为驱动程序。这个验证步骤应该包括多个 Linux 风格(例如 centos/ubuntu/debian)乘以支持的 ansible 版本。
然后应该执行测试,以便通过以下方式验证角色
手头的问题
- 没有可用的官方 ansible 图像
- 如何最好地测试角色的 ansible 版本兼容性?
问题 1:没有官方的 ansible 图像
ansible 团队的官方图片已经弃用了大约 3 年:
- https://hub.docker.com/r/ansible/ubuntu14.04-ansible
- https://hub.docker.com/r/ansible/centos7-ansible
此外,由于结果数量庞大,不推荐使用的图像所指的链接以查找支持 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
ansible - 分子:如何查看有关受管理机器的“事实”,例如“ansible -m setup instance1”
我知道 ansible,我可以根据ansible -m setup instance1
问题使用查看有关管理机器的“事实”:
我在哪里可以获得 Ansible 预定义变量的列表?
但是我正在使用分子,所以对于我instance1
通过分子创建的 docker 容器是否有相同的方法
我的原因是试图理解为什么尽管做了一个gather_facts
我得到了我的分子日志......
供参考这里是我的分子设置...
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
我希望我已经为这个问题提供了足够的信息
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
docker - Debian 映像 - 未找到 /sbin/init
我正在尝试使用/sbin/init
通过分子进行 ansible 角色测试的过程来启动 Debian 映像。
是的,我知道,/sbin/init
除非您确实有这样做的用例,否则不应从容器中开始。使用分子,我可以在 docker 容器中测试我的 ansible 角色。因此我需要/sbin/init
跑步。
当我执行
但是,使用 debian:8 可以正常工作。
奇迹般有效。
Debian 是否已切换到新的引导过程?发生了什么变化?
unit-testing - 如何在使用 Molecule 的专用测试机内运行 ansible 角色后撤消更改
当使用 docker 作为驱动程序时,Molecule 正在容器内测试我的 Ansible 角色,然后将其销毁。但是,我的测试类型是内核级别的,所以我不能使用 Docker。我正在使用专用的测试机。
我想在每次运行测试时添加一个后备脚本来撤消我的更改。有什么建议来处理这个吗?在哪里添加脚本?
ansible - 在 Molecule 中使用 testinfra 作为验证器时如何调试测试
使用分子工具测试 ansible 角色并使用 testinfra(pytest) 验证结果时,我无法打印或调试某些输出或 ansible 变量。
有没有办法做到这一点?