我使用 saltstack 在 AWS 上部署我的应用程序。这些公式从工件工厂获取 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
属性(我认为这是一个问题(,但您无法从artifactory.downloaded
状态传递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_version
和version
属性都是必需的。