GitLab Runner执行AWX CLI导出命令报错:ApiV2无execution_environments属性
问题描述
在自托管GitLab Runner上执行AWX数据导出命令时触发错误,该命令在其他机器上可正常运行,且两台机器Python版本一致。
执行命令
awx --conf.host http://{AWX_URL} --conf.token {AWX_TOKEN} --conf.insecure export -k --job-template > job_tempalte.json;
报错信息
DEBUG:awxkit.api.pages.page:get_page: /api/v2/workflow_job_templates/ DEBUG:awxkit.api.pages.page:set_page: <class 'awxkit.api.pages.workflow_job_templates.WorkflowJobTemplates'> /api/v2/workflow_job_templates/ Traceback (most recent call last): File "/usr/lib/python3.9/site-packages/awxkit/cli/__init__.py", line 25, in run cli.parse_resource() File "/usr/lib/python3.9/site-packages/awxkit/cli/client.py", line 152, in parse_resource self.resource = parse_resource(self, skip_deprecated=skip_deprecated) File "/usr/lib/python3.9/site-packages/awxkit/cli/resource.py", line 220, in parse_resource response = command.handle(client, parser) File "/usr/lib/python3.9/site-packages/awxkit/cli/resource.py", line 179, in handle data = client.v2.export_assets(**kwargs) File "/usr/lib/python3.9/site-packages/awxkit/api/pages/api.py", line 201, in export_assets endpoint = getattr(self, resource) File "/usr/lib/python3.9/site-packages/awxkit/api/pages/page.py", line 115, in __getattr__ raise AttributeError("{!r} object has no attribute {!r}".format(self.__class__.__name__, name)) AttributeError: 'ApiV2' object has no attribute 'execution_environments'
原因分析与解决方案
这个错误的核心原因是awxkit版本与AWX服务器版本不兼容:
execution_environments是AWX较新版本API新增的资源,但GitLab Runner上安装的awxkit版本过旧,未实现该属性,导致导出时触发属性不存在的报错。- 虽然两台机器Python版本一致,但awxkit版本不同,这就是其他机器能正常运行的关键差异点。
解决步骤
- 统一awxkit版本:在GitLab Runner环境中安装与正常机器相同版本的awxkit
# 先在正常机器上查看awxkit版本 awx --version # 在Runner环境中安装对应版本(示例版本为21.10.0,替换为实际版本) pip install awxkit==21.10.0 - 验证版本匹配:确保awxkit版本与AWX服务器版本保持一致或接近(官方建议两者版本匹配以避免兼容性问题)
- 重新执行命令:完成版本调整后,再次运行导出命令即可。
内容的提问来源于stack exchange,提问作者naveen chawla
相关产品推荐
相关产品推荐

