2017-03-16 31 views
2

我使用Powershell DSC來設置Windows Server 2012 R2框。作爲配置過程的一部分,我的供應jfrog.exe和執行配置命令爲服務帳戶:Jfrog CLI不尊重配置的API密鑰

jfrog rt config --url=$localArtifactoryInstance --user=$username --apikey=$apikey 

此命令創建服務帳戶的主目錄.jfrog.jfrog-cli.conf(C :\ Users \ $ serviceAccount.jfrog.jfrog-cli.conf),包含URL/username/apiKey。

後配置,此服務帳戶負責「促進」文物從一個倉庫到另一個:

jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/{1}/{2}/' 

該命令被拒絕,401:

[Error] Artifactory response: 401 Unauthorized 
{ 
    "errors": [ 
    { 
     "status": 401, 
     "message": "Bad authentication. Provided username or password are incorrect." 
    } 
    ] 
} 

然而,當我添加與已經在jfrog-cli.conf中配置相同的API密鑰到命令:

jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/{1}/{2}/' --ApiKey $apiKey 

它很成功,我可以通過Artifactory UI驗證成功。

  • 執行該命令的服務帳戶是相同執行jfrog室溫配置服務帳戶,並且在jfrog-cli.conf的用戶名一致。在Artifactory的產生
  • API密鑰爲服務帳戶
  • 我曾試圖改變在jfrog-cli.conf的用戶名包含和不包含域
  • 我已確保環境變量「HOME」存在並指出該服務帳戶的主目錄(https://github.com/JFrogDev/jfrog-cli-go/blob/master/utils/ioutils/ioutils.go似乎在暗示,這個變量是必要的)
  • 「jfrog RT配置顯示」顯示正確的數據

感謝任何幫助或指導,您可以提供!

回答

4

「401未授權」響應是配置用戶名和API密鑰的結果。

當運行jfrog rt config,你可以提供用戶名/口令對或 API密鑰。配置用戶名和api密鑰後,我的命令失敗,因爲jfrog.exe使用用戶名和密碼聯繫服務器。

的解決方案是完全從我的PowerShell的DSC配置中刪除用戶名,並運行jfrog rt config時僅提供網址apikey