问题标签 [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 - 如何使用 Molecule for Ansible 测试安装和卸载场景?
在我创建的 Ansible 角色中,我涵盖了安装和卸载场景:
foo-install.yml
main.yml
当install
标志设置为时调用true
。foo-uninstall.yml
main.yml
当install
标志设置为时调用false
。
虽然安装包括安装 RPM 包、复制配置文件和启动系统服务,但卸载步骤基本上与安装相反:停止系统服务、卸载 RPM 包、删除应用程序文件夹。
作为一个好公民,我使用Molecule为角色创建了一个测试,它在 CentOS Vagrant 盒子中运行角色。这适用于安装场景,我使用 Python 测试(使用testinfra
)来验证 RPM 是否已安装、服务是否已启动等。
我现在如何使用 Molecule 来测试卸载方案?有没有办法改变分子中的步骤,它做这样的事情(简化)?
- 创造
- 收敛(运行角色的安装部分)
- 幂等性(对于安装部分)
- 验证(安装步骤)
- 收敛(运行角色的卸载部分)
- 幂等性(用于卸载部分)
- 验证(卸载步骤)
- 破坏
也许我遗漏了一些东西,但我还没有找到一个明显的方法(或例子)来说明如何做这样的事情。
有没有办法覆盖这样的场景?或者我最好只测试安装场景?
python-3.x - 分子测试已停止使用我的 ansible 角色
我刚从分子开始,遵循了一个很好的简单教程,我生成了一个角色并进行了分子测试,它按预期工作。第二天我重新启动了我的机器,它又停止了工作。ERROR: 'molecule/*/molecule.yml' glob failed. Exiting.
我使用的是 macbook pro 10.13.6 及以下版本是必要的信息。
问题是谷歌上的所有搜索早在 2017 年就显示了这个问题,它与人们使用的版本有关,这些版本现在都与我的不同。调试开关不是分子命令的当前没有帮助,所以我没有解决这个问题的信息。我想知道是否有人以前经历过这种情况。提前致谢。
ansible - 使用 Ansible Molecule 进行测试时如何跳过一些角色任务?
当我使用 Ansible Molecule 执行功能测试时,跳过某些角色任务的最简单方法是什么?
ansible - 如何为特定或自定义平台运行分子测试?
我确实知道我可以在platforms
里面添加多个,molecule.yml
但我可能想在一个新的/实验性的平台上运行测试,或者我可能有一个不能免费使用的平台,所以我不能提交对分子.yml 文件的更改。
ansible - 如何让一个分子平台无法通过测试?
在开发 Ansible 角色期间,您可能希望添加对新平台的支持。此过程可能需要进行大量更改,因此最好先启用这个新平台并让它失败而不改变最终结果。
我怎样才能用分子做到这一点?
android - 如何在 Molecule / TestInfra 测试中获取所有主机的 IP/主机名?
我有一个简单的角色,它只是获取剧中所有主机的 IP/主机名,并更新 /etc/hosts 文件。
我也想对此进行测试,对于分子。我对分子/testinfra 有点熟悉,并且知道如何使测试循环,以及如何检查文件的内容等。我不知道如何从这个测试中获取 ip/主机名,然后使用它们来验证它们存在于 /etc/hosts 文件中。
我想这将包含我需要的信息,但我看不到从分子/testinfra 打印出这些信息的方法,所以我实际上可以看到它。如果我能够真正看到 IP,我知道我可以像下面这样使用它们:
ansible - Ansible Molecule 传递多个 vault-id
如何将多个 ansible vault-ids 传递给分子?在分子.yml 中将多个 vault-id 作为选项传递将不起作用,因为最后一个 vault-id 条目将获胜。
例子:
labelA 将被 labelB 覆盖。
不同的团队拥有这些密码文件,因此它们在 CI 和 AWX 中是独立的。
ansible - 在分子测试中访问 Ansible 变量,TestInfra
我在研究 inspec 以及如何在 ansible 中使用它时拿起了分子。我发现分子很酷并采用了它。我想以两种方式使用它。
在第 1点:我在 stackoverflow 上发现了这个非常有用的问题/回复,这帮助我塑造了我的想法。我将角色 kafka 的变量文件放在 group_vars/all 下,如 stackoverflow 帖子中所建议的那样
test_default.py
group_vars/all.yml
分子验证
验证程序成功完成。但是,该方法host.ansible.get_variables()
无法解析另一个变量中的变量,例如 : kafka_final_path: "/usr/local/kafka/{{ kafka_version }}"
。
我最终使用了以下内容:
获取 kafka_final_path 的值。
问题 1.1:看看在使用所有需要的插值检索变量的变量之前如何需要进行一些操作,我想知道有没有更好的方法来编写这些测试?
问题 2.1:在第 2 点上,我想创建一个不同的测试场景,例如 AWS 上的 EC2。在这些剧本上,我使用传递给 ansible-playbook 的外部变量文件,因为它们具有更高的优先级。我想知道在这种情况下如何从 testinfra 中的外部 vars_files 访问这些变量?
python - 分子在运行基本测试时抱怨“[703] 应该更改默认元数据:描述”
我无法运行该 molecule test
命令,因为它会引发以下错误,而我可以运行单个命令而不会出现任何错误(还提供了 --debug o/p 下面)
但是,如果我在命令下运行,它会完美运行。那么,谁能指出为什么整个测试都失败了,我该怎么办?
- 分子创造
- 分子列表
- 分子会聚
- 分子列表
- 分子破坏
- 分子列表
文件夹结构看起来像这样
分子.yml 文件是
任务\main.yml -->
分子和ansible的版本如下
码头工人图像
molecule --debug test
is的样本输出
ansible - 如何在一台服务器上使用分子 prepare.yml 而在另一台服务器上运行 playbook?
我有一个问题,我会尝试向您描述我的问题,请检查并告诉我是否可以这样做。
我正在使用分子和 DroneCI 来自动测试我的剧本。因为分子本身不支持 Proxmox,但 Ansible 有 Proxmox 模块,所以我编写了在 Proxmox 服务器上创建 LXC 容器的准备剧本。这很好用,但问题是因为我的 LXC 容器从 DHCP 服务器获取 IP,而我没有解决方案来在新创建的 LXC 上运行我的剧本,因为我的库存中没有那个 IP。
是否存在针对此问题的一些解决方案,或者是否有人知道我该怎么做?
谢谢你。