问题标签 [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 回答
130 浏览

testing - 为分子准备步骤调用另一个目录中的角色

我有角色角色 1,我正在尝试为其创建分子测试,但这个角色依赖于另一个角色角色 2,它位于不同的目录中。作为 docker 容器中运行测试的分子设置的一部分,我有一个 prepare.yml 文件,我试图用它来运行 role-2,以便容器准备好运行 role-1。最初我在同一个位置拥有这两个角色,并且没有这个问题,因为它们位于同一个目录中。但是我需要分离角色的代码以进行版本控制,并且在为测试定位角色 2 时遇到了问题。这种分离仅用于开发和测试,角色一起安装在一个位置进行部署,所以没有问题。

我已经在我的文件任务中尝试了import_role, include_role,并更新了文件中的,以指向具有 role-2 的目录并得到相同的错误:rolesprepare.ymlANSIBLE_ROLES_PATH:molecule.yml

ERROR! the role 'role-2' was not found in ...

它列出了一堆目录,包括由 ANSIBLE_ROLES_PATH 值设置的目录,并指向我的prepare.yml文件中带有 task的行name: role-2。我曾认为这可能是权限问题,但使用import_role我可以使用become: yesandbecome_user: correct_user来但得到相同的错误。

我的 prepare.yml 文件看起来像这样

是否可以做我需要的事情并从另一个位置调用角色?或者有没有更好的方法来做到这一点?

0 投票
2 回答
520 浏览

ansible - 分子错误:计算的完全限定角色名称不符合当前星系要求

我对 ansible 和 ansible 角色完全陌生。我创建了我的第一个角色,并想用分子来测试它。

如果我运行,molecule test我会收到一条错误消息: Computed fully qualified role name of generate_random_password does not follow current galaxy requirements. Please edit meta/main.yml and assure we can correctly determine full role name:

完整输出:

如果我是正确的角色名称generate_random_password是一个有效的角色名称。我错了什么?

0 投票
1 回答
36 浏览

ansible - Ansible 分子测试时出现 Vagrant 执行错误

当我使用 vagrant 使用分子 testig 进行 ansible 代码测试时,出现以下错误(/bin/sh: nslookup: command not found )

0 投票
1 回答
93 浏览

ansible - 如何在分子中传递额外的库存文件(动态库存脚本)?

在我的剧本中,我使用 var group[inventory_group]。我需要使用我的动态库存脚本。在我发现的文档中:

像上面一样,可以使用 hosts 键传递一个额外的清单文件(甚至是动态清单脚本)。Ansible 会自动将此清单与分子生成的清单合并。如果您想定义不受 Molecule 管理的额外主机,这将很有用。

但我没有找到任何例子。

那么,我如何“使用 hosts 键传递额外的清单文件(甚至是动态清单脚本)”?

0 投票
1 回答
31 浏览

python - 使用 re 进行分子分解

我想创建一个字典来拆分分子式的所有元素。我尝试使用 re 模块

我期待这个回报:

0 投票
0 回答
134 浏览

ansible - 在一个 Molecule 场景中使用不同的 Ansible 集合版本

我有一个 Ansible 集合来安装一些软件。每个软件版本都附加到一个单独的集合版本。要测试升级,我需要先应用旧的集合版本,然后运行新版本。为了实现这一点,我稍微改变了收敛/测试顺序molecule.yml

所以dependencystep 在升级活动之前安装新版本的集合converge,并且prepareplaybook 包含安装旧集合版本和以前的软件版本的任务:

但它仅在converge运行两次或更多时才有效,因此在ANSIBLE_COLLECTIONS_PATH. 但是为什么第一次运行不是这样呢?错误是

有没有办法避免这种情况或使用另一种方法?当需要安装不同的集合版本时,我尝试使用环境变量dependency.options.requirements-file并执行两次步骤,但也没有成功。dependency

0 投票
0 回答
172 浏览

kubernetes - ModuleNotFoundError:没有名为“kubernetes”的模块

任务执行期间发生异常。要查看完整的回溯,请使用 -vvv。错误是:ModuleNotFoundError: No module named 'kubernetes'

Kubernetes 已安装,但仍然出现错误

0 投票
1 回答
57 浏览

testing - 运行分子测试时是否可以禁用语法检查?

我有一个角色,role-1,我正在测试它依赖于另一个角色,role-2。我在准备步骤中将第二个角色角色 2 克隆到/tmp,稍后/tmp在收敛期间将其导入,但是在 INFO Running default > syntax 我收到错误期间,找不到角色 2,因为该角色尚未克隆并且系统上不存在。

从调试/详细输出看来,molecule test导致以下命令正在运行

COMMAND: ansible-playbook --diff --inventory /home/vagrant/.cache/molecule/role-1/default/inventory --skip-tags molecule-notest,notest --syntax-check /opt/role-1-role/ansible/roles/role-1/molecule/default/converge.yml

有没有办法停止运行此命令--syntax-check,覆盖运行的默认命令molecule test?还是让语法检查跳过某些任务或文件?

0 投票
0 回答
42 浏览

molecule - 为什么 Molecule 无法启动 docker 容器(无法创建临时目录)

我在这里发现了类似的情况,我正在使用分子来测试我的 ansible 角色,但由于某种原因,它跳过了“创建”部分并给出了如下错误:

它正在跳过创建过程:跳过,已创建实例。但是,什么都没有运行:

我尝试了什么:

  • molecule destroy
  • molecule reset
  • 重新开始
  • rm -rf ~/.cache/
  • 改为在remote_tmp_/tmp/.ansible//etc/ansible/ansible.cfg
  • 重新安装分子

这个问题只有一个角色。

更新:它在步骤失败:

0 投票
1 回答
32 浏览

ansible - 如何使用使用 rhsm_repository 模块的分子测试角色?

我的 ansible 角色之一调用 rhsm_repository 模块:

我正在向角色添加分子测试,但收敛步骤无法启用存储库:

在容器中运行subscription-manager命令也会失败。 subscription-manager是此模块 AFAICT 使用的命令。

我的主机是 RHEL8,所以即使我愿意,我也无法启用 repo。但是使用分子的想法是允许测试各种发行版,因此无论如何这似乎都是错误的方法。

如何在容器中rhsm_repository使用分子测试模块?podman

我的分子的platform定义是: