Salt堆栈中是否有文件上传功能,可以将罐子上传到JFrog Artifactory?

时间:2019-01-21 07:04:41

标签: artifactory salt-stack

我正在使用Saltstack状态脚本从BitBucket创建一个jar,并将其上传到Artifactory。上传到Artifactory时,我看到授权错误。我不确定这是否是实现上传到Artifactory的正确方法。

我尝试使用CURL实现上传。我需要在CURL命令中提供-u myUser:myPassword才能正常工作。我无法在盐状态脚本中提供凭据。我正在寻找一个更好的选项来实现不使用登录凭据的上传。如何使用Saltstack将工件上传到工件?

curl -X PUT -T /tmp/Batch.jar http://artifactory/artifactory/Batch.jar

错误: 标准输出:

              {
                \"errors\" : [ {
                  \"status\" : 401,
                  \"message\" : \"Unauthorized\"
                } ]
              }

2 个答案:

答案 0 :(得分:0)

根据Artifactory documentation,REST API支持以下形式的身份验证:

  • 使用您的用户名和密码进行基本身份验证
  • [最简单] 使用您的用户名和API密钥进行基本身份验证。
  • 与API密钥一起使用专用标头(X-JFrog-Art-Api)。
  • 使用访问令牌代替密码进行基本身份验证。
  • [推荐] 在授权标头中使用访问令牌作为承载令牌
    Authorization: Bearer)和您的访问令牌。

您将不得不选择以上之一。

答案 1 :(得分:0)

我已经遇到过几次这样的事情。最简单的解决方案是编写一个小的Salt执行模块来完成这项工作。这样,您可以将人工凭证存储为支​​柱数据,并使用常规的python请求或salt http帮助程序进行Web请求。

像盐堆一样,它提供了一个用于人工制品的模块:https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.artifactory.html

它可能无法完全满足您的要求,但是您可以肯定地扩展它:https://github.com/saltstack/salt/blob/develop/salt/modules/artifactory.py

用于编写执行模块的saltstack文档可以在这里: https://docs.saltstack.com/en/latest/ref/modules/