You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible角色与集合的短横线/下划线命名规则问询

Ansible角色与集合命名:短横线vs下划线的规则说明

技术限制与兼容性

  • Ansible核心引擎对两种命名风格双向兼容:在playbook里引用时,role-name和role_name会被识别为同一个角色,内部自动做转换处理。
  • 文档中提到的“角色名称仅限小写字母、数字和下划线”,实际是针对Ansible内置模块、插件的命名约束,而非Galaxy平台的角色发布规则——Galaxy允许使用短横线,所以ansible-galaxy role init my-super-role能正常执行,平台上也有大量短横线命名的公开角色。
  • 你遇到的角色从acme-sh改名为acme_sh的情况,是旧版Galaxy的命名要求,目前平台已放宽限制,两种风格都可正常发布。

官方建议规范

  • Ansible核心生态(内置模块、插件、变量)严格遵循snake_case,这是为了保证核心代码的一致性。
  • 对于Galaxy上的公开角色/集合,官方没有强制统一命名,但最新指南更推荐snake_case:尤其是当角色需要和核心模块、内部变量交互时,能减少命名转换带来的混淆。
  • 文档示例里的test-role-1属于早期遗留内容,并非强制要求的规范。

社区通用实践

  • 像geerlingguy这类资深维护者从kebab-case转向snake_case,核心原因是对齐Ansible核心的命名风格,降低用户的认知成本。
  • 公开分享的角色/集合:优先选snake_case,既贴合官方规范,也能避免playbook引用、变量定义时的潜在问题;内部使用场景:两种风格均可,只要团队内部保持统一即可。

内容的提问来源于stack exchange,提问作者phanaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:57:20