ansible - 如何在我的集合的根目录上运行 ansible-test?
问题描述
我目前正在开发自己的 Ansible 集合并遵循文档。目录结构如下所示:
~/.ansible/collections/gertvdijk/mycollection
├── galaxy.yml
├── plugins
│ └── lookup
│ └── mylookup.py
├── README.md
└── tests
└── unit
└── plugins
└── lookup
└── test_mylookup.py
选择该位置~/.ansible/collections/gertvdijk/mycollection
是为了方便,以便在集合的默认搜索路径 ( COLLECTIONS_PATHS ) 上找到它。
Ansible 开发人员文档部分测试集合提到我应该使用ansible-test
具有给定结构的集合根目录中的命令。
您必须始终
ansible-test
从集合的根目录执行。
但是,这对我来说失败了,出现了一个错误,好像我应该已经在项目中使用它了。即使运行--help
失败并出现当前工作目录错误:
$ ansible-test --help
ERROR: The current working directory must be at or below:
- an Ansible collection: {...}/ansible_collections/{namespace}/{collection}/
Current working directory: /home/gert/.ansible/collections/gertvdijk/mycollection
通过克隆现有的社区集合(例如community.grafana)也会发生同样的事情。GitHub CI 步骤包括在ansible_collections/{namespace}/{collection}
路径中的安装(参见此处)。
暂时将其作为一种解决方法(我想避免这种情况);将集合的存储库移动到包含的某个路径/ansible_collections/gertvdijk/mycollection
,然后从那里运行它。
这不可能是真的,对吧,两级以上的目录名称会造就或破坏该ansible-test
工具吗?我在这里想念什么?
解决方案
TL;DR:您的家庭收藏路径应该是/home/gert/.ansible/collections/ansible_collections/gertvdijk/mycollection
中列出的目录COLLECTION_PATH
实际上应该包含一个顶级ansible_collections
文件夹。如文档中所述,这与ansible_collections
eg 使用的约定相关联module_utils
您还可以通过运行来观察空白文件夹的结构,例如
ansible-galaxy collection install -p /whatever community.grafana
在这种情况下,您最终会得到文件夹/whatever/ansible_collections/community/grafana
。
所以你的实际主文件夹收集路径应该是/home/gert/.ansible/collections/ansible_collections/gertvdijk/mycollection
推荐阅读
- github - 防止非空命名空间删除
- spring - Spring Cloud Kubernetes 未加载具有 xx.yy 等模式的密钥
- java - 如何将 AdMob 添加到 AndroidStudio 4.2.2?
- r - 为什么 guides() 中的 size 没有 override.aes?
- react-native - 如何使用嵌套的 flatlist 或 sectionlist?
- php - 如何保存用户对 React 组件的操作,以便将来在任何设备上登录?
- react-native - 禁用特定嵌套屏幕的抽屉
- java - java.io.ObjectOutputStream 类型无法解析。它是从所需的 .class 文件中间接引用的
- recursion - Google Foobar 燃油喷射系统
- python - 根据匹配键的值比较 2 个字典