1

我有一个项目roles/requirements.ymlcollections/requirements.yml。这 - 我认为 - 根据 AWX / Tower 指南。

在项目更新roles/requirements.yml时成功获取,但collections/requirements.yml失败并显示典型的 Ansible 错误消息,不幸的是,这并不能帮助我理解出了什么问题。

PLAY [Update source tree if necessary] *****************************************
TASK [delete project directory before update] **********************************
changed: [localhost]
TASK [update project using git] ************************************************
changed: [localhost]
TASK [Set the git repository version] ******************************************
ok: [localhost]
TASK [Repository Version] ******************************************************
ok: [localhost] => {
    "msg": "Repository Version 812a488b0a09f7fda6a784a8247abaf6892e1f13"
}
PLAY [Install content with ansible-galaxy command if necessary] ****************
TASK [detect roles/requirements.(yml/yaml)] ************************************
ok: [localhost] => (item={'ext': '.yml'})
ok: [localhost] => (item={'ext': '.yaml'})
TASK [fetch galaxy roles from requirements.(yml/yaml)] *************************
changed: [localhost] => (item={'changed': False, 'stat': {'exists': True, 'path': '/var/lib/awx/projects/_6__c2/roles/requirements.yml', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 390, 'inode': 131356, 'dev': 64771, 'nlink': 1, 'atime': 1613038457.4215767, 'mtime': 1613038456.678576, 'ctime': 1613038456.678576, 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False, 'blocks': 8, 'block_size': 4096, 'device_type': 0, 'readable': True, 'writeable': True, 'executable': False, 'pw_name': 'root', 'gr_name': 'root', 'checksum': '29ae537db56b12b54f2eecb8668f4185b7b1e91d', 'mimetype': 'text/plain', 'charset': 'us-ascii', 'version': None, 'attributes': [], 'attr_flags': ''}, 'invocation': {'module_args': {'path': '/var/lib/awx/projects/_6__c2/roles/requirements.yml', 'follow': False, 'get_md5'…
skipping: [localhost] => (item={'changed': False, 'stat': {'exists': False}, 'invocation': {'module_args': {'path': '/var/lib/awx/projects/_6__c2/roles/requirements.yaml', 'follow': False, 'get_md5': False, 'get_checksum': True, 'get_mime': True, 'get_attributes': True, 'checksum_algorithm': 'sha1'}}, 'failed': False, 'item': {'ext': '.yaml'}, 'ansible_loop_var': 'item'}) 
TASK [detect collections/requirements.(yml/yaml)] ******************************
ok: [localhost] => (item={'ext': '.yml'})
ok: [localhost] => (item={'ext': '.yaml'})
TASK [fetch galaxy collections from collections/requirements.(yml/yaml)] *******
failed: [localhost] (item={'changed': False, 'stat': {'exists': True, 'path': '/var/lib/awx/projects/_6__c2/collections/requirements.yml', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 183, 'inode': 131286, 'dev': 64771, 'nlink': 1, 'atime': 1613038457.4195766, 'mtime': 1613038456.673576, 'ctime': 1613038456.673576, 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False, 'blocks': 8, 'block_size': 4096, 'device_type': 0, 'readable': True, 'writeable': True, 'executable': False, 'pw_name': 'root', 'gr_name': 'root', 'checksum': '7b8e2a2b64c7d5e64917b548dc40347158f8bb1b', 'mimetype': 'text/plain', 'charset': 'us-ascii', 'version': None, 'attributes': [], 'attr_flags': ''}, 'invocation': {'module_args': {'path': '/var/lib/awx/projects/_6__c2/collections/requirements.yml', 'follow': False, '…
skipping: [localhost] => (item={'changed': False, 'stat': {'exists': False}, 'invocation': {'module_args': {'path': '/var/lib/awx/projects/_6__c2/collections/requirements.yaml', 'follow': False, 'get_md5': False, 'get_checksum': True, 'get_mime': True, 'get_attributes': True, 'checksum_algorithm': 'sha1'}}, 'failed': False, 'item': {'ext': '.yaml'}, 'ansible_loop_var': 'item'}) 

当然,我在本地测试了需求。有用。只是不在 AWX 中。

除了状态为失败的一项任务外,我真的看不出失败的错误消息和获取角色时的成功日志记录之间有任何区别。

这里有什么问题?

4

1 回答 1

1

我刚遇到这个问题,因为我遇到了同样的情况。我能够解决我的问题并想分享我的方法。我的 AWX 版本是 17.1.0(Docker 映像)。

如何确定根本原因

  1. 按照建议启用该-vvv选项sadok-f(请参阅下面的详细说明)
  2. 打开作业执行日志
  3. 单击失败任务的日志行(出现一个小弹出窗口)
  4. 单击JSON选项卡(或Standard Error- 选项卡中提供了大多数详细信息JSON
  5. 阅读更具描述性的错误消息

我的问题是,我在 Ansible Galaxy 凭据中有错字。因此,我在其中的依赖requirements.yml项是不可安装的。

如何增加项目作业的详细程度

如前所述sadok-f,启用-vvv更详细的选项。该选项有点隐藏。您可以在 中查看当前配置Settings > Jobs settings。现在寻找"Run Project Updates With Higher Verbosity"(项目更新触发安装 requirements.yml 文件)。

至少对于 AWX 17.1.0,没有实现通过 GUI 编辑设置。您需要通过 AWX-API 修补设置以启用项目更新作业详细程度。为此,请访问 AWX-API: <your-awx-fqdn>/api/v2/settings/jobs/

在页面底部,您有一个小窗口,可让您修改内容。在content盒子里寻找:

"PROJECT_UPDATE_VVV": false,

并将其更改为:

"PROJECT_UPDATE_VVV": true,

单击PATCH按钮。这启用了-vvv项目刷新作业的选项。如前所述,这些刷新作业会安装要求。

同步您的项目并查看更详细的作业日志(Projects > Sync Project(微小的循环箭头按钮))。

于 2021-11-19T18:16:44.293 回答