2017-03-15 53 views
-1

我正在使用TFS 2017在虛擬生成代理上構建企業.net和.net核心應用程序。短暫的TFS生成代理程序設置

我使用TFS本身的Vagrant創建虛擬構建代理,但需要自動安裝TFS構建代理並註冊到中央服務器。

最終的結果將是短暫的TFS構建代理,我可以隨意重建,即使在運行中,如果它足夠快。

有沒有人設法自動化建設代理安裝和註冊,如果是的話如何?

+0

它都是基於命令行的。你有什麼嘗試不起作用? –

+2

有趣的是[2015官方文檔](https://www.visualstudio.com/en-us/docs/build/actions/agents/v1-windows)顯示了大量命令行參數,但[TFS 2017文檔](https ://www.visualstudio.com/en-us/docs/build/actions/agents/v2-windows)不。它確實顯示幫助選項將顯示無人值守配置,因此我將在下一步檢查該選項。謝謝! – j3r3m7

+0

因此,如果在這方面進一步糾纏確認命令行選項在2017年版本,如果沒有在線記錄 - 將發佈一個工作示例,當我成功。 – j3r3m7

回答

0

我終於成功地它到底自動化通過組合下載和解壓2017 VSTS劑,與註冊代理

$VSTSAgentFileName="vsts-agent-win7-x64-2.105.7.zip" 
$VSTSAgentDownloadUrl="http://yourvstsagentdownloadserver/" + $VSTSAgentFileName 
$TempFolder="c:/Temp/" 
$VSTSAgentDownloadPath=$TempFolder + $VSTSAgentFileName 
$VSTSAgentFolder="c:/vsts_agent" 
$TFSServerUrl="http://yourtfsserver:8080/tfs" 

function Download-VSTSAgent{ 
    Write-Host("Downloading: " + $VSTSAgentDownloadUrl) 
    Write-Host("To: " + $VSTSAgentDownloadPath) 
    $WebClient = new-object System.Net.WebClient 
    $WebClient.DownloadFile($VSTSAgentDownloadUrl, $VSTSAgentDownloadPath) 
} 

function Unzip-VSTSAgent{ 
    Write-Host("Unzipping: " + $VSTSAgentDownloadPath) 
    Write-Host("To: " + $VSTSAgentFolder) 
    Add-Type -assembly "system.io.compression.filesystem" 
    [io.compression.zipfile]::ExtractToDirectory($VSTSAgentDownloadPath, $VSTSAgentFolder) 
} 

function Register-VSTSAgent{ 
    cd $VSTSAgentFolder 
    & .\config.cmd --unattended --auth Negotiate --username yourdomain\yourusername --password yourpw --url $TFSServerUrl --pool yourpool 
} 

Download-VSTSAgent 
Unzip-VSTSAgent 
Register-VSTSAgent 

注:我以前協商作爲認證PAT不適合我,因此您需要安全地傳遞Register-VSTSAgent函數中的憑證 - 或者甚至更好地使用PAT auth。

最後,如果您想知道.\config.cmd使用.\config.cmd --help的命令 - 如上所述,2017年的文檔沒有詳細說明這些。