无法通过版本标签从GitHub安装Ansible Galaxy角色的问题求助
问题原因
- 指定标签安装报错是因为ansible-galaxy拉取git角色时默认采用浅克隆策略,仅拉取默认分支最新提交,不会同步远程仓库的所有标签,导致git checkout时找不到你指定的
v0.0.1标签。 - 安装后显示
unknown version是因为该角色仓库根目录下的meta/main.yml未配置galaxy_info.version字段,ansible-galaxy无法读取版本元数据。
解决方案
指定标签安装失败修复
执行安装命令时禁用浅克隆策略,即可正常拉取指定标签版本:
ANSIBLE_GALAXY_DISABLE_GITCLONE_SHALLOW=true ansible-galaxy install git+https://github.com/natemarks/ansible-role-shell.git,v0.0.1
如果执行后仍然报错,可先清理本地缓存的角色文件再重试:
rm -rf ~/.ansible/roles/ansible-role-shell ~/.ansible/tmp/*
版本标识未知修复
如果是临时使用,可手动补全角色元数据:
- 进入角色安装目录
cd ~/.ansible/roles/ansible-role-shell
- 编辑
meta/main.yml文件,在galaxy_info节点下添加版本字段:
galaxy_info: # 保留原有其他配置不变,新增下面这行 version: 0.0.1
修改保存后执行ansible-galaxy list即可正常显示版本号。
如果该角色由你维护,将修改后的meta/main.yml推送到远程仓库,后续所有用户安装都可以自动识别版本,无需手动修改。
内容的提问来源于stack exchange,提问作者Nate Marks
相关产品推荐
相关产品推荐

