使用 artifactory.download 不适用于 Salt-stack 中的快照版本

Use of artifactory.download not working for snapshot version in Salt-stack

我使用 saltstack 在 AWS 上部署我的应用程序。公式从 artifactory 中获取 jar,运行 应用程序即服务。

它适用于生产环境(发行版例如:1.1.3),但在具有快照版本(例如:1.1.4-SNAPSHOT)的开发环境中会失败。

我的公式:

artifactory.downloaded:
   - artifact:
        artifactory_url: {{ artifactory_url }}
        repository: {{ repository }}
        artifact_id: {{ artifact_id }}
        group_id: {{ group_id }}
        packaging: {{ packaging }}
        classifier: {{ classifier }}
        version: '{{ version }}'
   - target_dir: {{ folder }}

错误:'NoneType' object is not iterable

我想我明白了。

状态artifactory.downloaded使用模块artifactory.get_snapshot进行快照,artifactory.get_release进行发布。

get_snapshot 模块需要 snapshot_version 属性和 version 属性(我认为这是一个问题)但是你不能从 [=11] 传递 snapshot_version 属性=]状态。

所以为了解决这个问题,我不再使用 artifactory.downloaded 状态而是 artifactory.get_snapshot / artifactory.get_release 模块:

artifact_download:
 module.run:
    - name: artifactory.get_snapshot
    - artifactory_url: {{ artifactory_url }}
    - repository: {{ repository }}
    - artifact_id: {{artifact_id }}
    - group_id: {{ group_id }}
    - packaging: {{ packaging }}
    - classifier: {{ classifier }}
    - version: '{{ version }}'
    - snapshot_version: '{{ version }}'
    - target_dir: {{ folder }}

⚠️ - snapshot_versionversion 属性都是必需的。