问题标签 [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.
testing - 为分子准备步骤调用另一个目录中的角色
我有角色角色 1,我正在尝试为其创建分子测试,但这个角色依赖于另一个角色角色 2,它位于不同的目录中。作为 docker 容器中运行测试的分子设置的一部分,我有一个 prepare.yml 文件,我试图用它来运行 role-2,以便容器准备好运行 role-1。最初我在同一个位置拥有这两个角色,并且没有这个问题,因为它们位于同一个目录中。但是我需要分离角色的代码以进行版本控制,并且在为测试定位角色 2 时遇到了问题。这种分离仅用于开发和测试,角色一起安装在一个位置进行部署,所以没有问题。
我已经在我的文件任务中尝试了import_role
, include_role
,并更新了文件中的,以指向具有 role-2 的目录并得到相同的错误:roles
prepare.yml
ANSIBLE_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: yes
andbecome_user: correct_user
来但得到相同的错误。
我的 prepare.yml 文件看起来像这样
是否可以做我需要的事情并从另一个位置调用角色?或者有没有更好的方法来做到这一点?
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
是一个有效的角色名称。我错了什么?
ansible - Ansible 分子测试时出现 Vagrant 执行错误
当我使用 vagrant 使用分子 testig 进行 ansible 代码测试时,出现以下错误(/bin/sh: nslookup: command not found )
ansible - 如何在分子中传递额外的库存文件(动态库存脚本)?
在我的剧本中,我使用 var group[inventory_group]
。我需要使用我的动态库存脚本。在我发现的文档中:
像上面一样,可以使用 hosts 键传递一个额外的清单文件(甚至是动态清单脚本)。Ansible 会自动将此清单与分子生成的清单合并。如果您想定义不受 Molecule 管理的额外主机,这将很有用。
但我没有找到任何例子。
那么,我如何“使用 hosts 键传递额外的清单文件(甚至是动态清单脚本)”?
python - 使用 re 进行分子分解
我想创建一个字典来拆分分子式的所有元素。我尝试使用 re 模块
我期待这个回报:
ansible - 在一个 Molecule 场景中使用不同的 Ansible 集合版本
我有一个 Ansible 集合来安装一些软件。每个软件版本都附加到一个单独的集合版本。要测试升级,我需要先应用旧的集合版本,然后运行新版本。为了实现这一点,我稍微改变了收敛/测试顺序molecule.yml
:
所以dependency
step 在升级活动之前安装新版本的集合converge
,并且prepare
playbook 包含安装旧集合版本和以前的软件版本的任务:
但它仅在converge
运行两次或更多时才有效,因此在ANSIBLE_COLLECTIONS_PATH
. 但是为什么第一次运行不是这样呢?错误是
有没有办法避免这种情况或使用另一种方法?当需要安装不同的集合版本时,我尝试使用环境变量dependency.options.requirements-file
并执行两次步骤,但也没有成功。dependency
kubernetes - ModuleNotFoundError:没有名为“kubernetes”的模块
任务执行期间发生异常。要查看完整的回溯,请使用 -vvv。错误是:ModuleNotFoundError: No module named 'kubernetes'
Kubernetes 已安装,但仍然出现错误
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
?还是让语法检查跳过某些任务或文件?
molecule - 为什么 Molecule 无法启动 docker 容器(无法创建临时目录)
我在这里发现了类似的情况,我正在使用分子来测试我的 ansible 角色,但由于某种原因,它跳过了“创建”部分并给出了如下错误:
它正在跳过创建过程:跳过,已创建实例。但是,什么都没有运行:
我尝试了什么:
molecule destroy
molecule reset
- 重新开始
rm -rf ~/.cache/
- 改为在
remote_tmp
_/tmp/.ansible/
/etc/ansible/ansible.cfg
- 重新安装分子
这个问题只有一个角色。
更新:它在步骤失败:
ansible - 如何使用使用 rhsm_repository 模块的分子测试角色?
我的 ansible 角色之一调用 rhsm_repository 模块:
我正在向角色添加分子测试,但收敛步骤无法启用存储库:
在容器中运行subscription-manager
命令也会失败。
subscription-manager
是此模块 AFAICT 使用的命令。
我的主机是 RHEL8,所以即使我愿意,我也无法启用 repo。但是使用分子的想法是允许测试各种发行版,因此无论如何这似乎都是错误的方法。
如何在容器中rhsm_repository
使用分子测试模块?podman
我的分子的platform
定义是: