TFS持續集成的就是跟蹤代碼變動,合併,可以自定義腳本,任務進行自動化測試,發版,部署,有點像docker的味道。在這個代理服務器分佈式中tfsserver起着可以隨時拿去最新代碼可以統一執行任務的角色,所不一樣的是代理服務器僅僅是執行具體的編譯,而tfs起着統一管理,調度,安排的做用。html
那麼tfs持續集成是怎麼實現的?前端
1 來看一篇博客node
http://www.cnblogs.com/zjoch/p/5741499.htmlgit
先要理解tfs的持續集成的架構,即分佈式架構,一個服務器能夠配置多個代理池,每一個代理池能夠註冊不一樣的代理服務器,每一個代理服務器能夠被定義多個任務docker
那麼首先來解釋一下代理池是什麼?shell
代理池其實就是一個容器與線程池的機制相似,他動態的監視代理服務器的狀態,當還有任務須要執行,在代理池中分配空閒的代理服務器給任務進行執行,就是這麼簡單的理解就能夠了npm
2 代理服務器windows
是的代理服務器,就是至關於公司部署了一個tfsserver,比我這個server是12的地址,有一天我本身下載一個代理服務器包到本地執行相關的配置命令而後搞一個windows服務器啓動起來去tfsserver認證就能夠了,其實認證的時候也就註冊了,兩邊分佈式的進行,註冊上了就能夠給代理池使用了。緩存
3 註冊代理服務器的過程蛋疼的事兒服務器
不得不說windows ms應該是一直以來都沒有把權限機制吃透,因此會出現不少權限的奇怪問題,也有像博客裏面提到第一個註冊的時候代理服務器是紅色的也就是受權失敗了,我也是刪掉,再來註冊配置,飯飯服務搞了幾回才神奇的變綠了,哎 我那個去搞不懂ms這個權限咋個在作的。
有一天我要遷移tfs代理服務器的代理池,因而乎就要從新來一次了,將代理從原有池中刪除,運行代理服務器的cmd來註冊,註冊到目標代理池發現註冊上告終果不起做用,刪掉再試也不行,果真ms是使用了ie作的代理服務器來鏈接tfs中心服務器,ie天然要緩存你在tfs中心服務器上的帳號,他會使用這個去登錄驗證你的tfs使用權限,而且ie中須要將tfs服務器地址添加到受信任的站點裏去,哎ms真他媽蛋疼。而後就ok了
具體詳細的流程是
1 運行ConfigureAgent.cmd
2 在輸入帳號的時候就是輸入你本身機器的當前用戶和密碼
3 若是註冊事後在tfs上去看發現是紅色的
4 打開ie把tfs地址粘貼進來訪問tfs,而後輸入你在tfs上使用的帳號和密碼(注意tfs須要域好比個人是esp/xiangxiaode),而後登錄進去,而且把他加入受信任的站點。
5 在代理池把代理刪掉,再從新註冊ok,變綠色了可使用了
6 把自定義的生成腳本使用的代理池修改一下
4 關於tfs角色
1)代理池管理員
也就是可以管理代理池的用戶
2)代理服務器管理員
也就是代理服務器註冊的時候須要的用戶,每次都會帶着這個用戶去作驗證,因此這2個角色要搞起哦
這裏專門有一篇帖子說過這個事情
http://www.cnblogs.com/danzhang/p/6136149.html
5 之因此我在本地搞了一個服務器的緣由
本來tfsserver本地已經配置了net mono的編譯環境了,可是可是如今咱們使用了angular來作前端開發,那麼前端開發使用git方式託管,天然也是要可以持續集成的。可是可是問題在於tfsserver是一臺內網服務器,他沒有連接外網的能力因此nodejs,npm那一套在線化安裝就不靈了,這個時候我本地呢,就有前端開發環境,也能夠聯網因此就把本地配置了一個代理服務器來實現自動發版的須要,方便測試人員更新版本。
6 在執行配置服務腳本的是遇到須要升級powershell
具體能夠參考:http://www.cnblogs.com/wenBlog/p/6198354.html,按照說明升級便可