Octopus

TeamCity 發行 Octopus 部署套件

先到Octopus建立一個專案 [![](http://4.bp.blogspot.com/-FDLLsc4giU4/VCkiHt_yQyI/AAAAAAAABrU/gvNiJ8w3SsI/s1600/01.%E9%96%8B%E6%96%B0%E5%B0%88%E6%A1%88.png)](http://4.bp.blogspot.com/-FDLLsc4giU4/VCkiHt_yQyI/AAAAAAAABrU/gvNiJ8w3SsI/s1600/01.%E9%96%8B%E6%96%B0%E5%B0%88%E6%A1%88.png) 選擇發行套件 [![](http://2.bp.blogspot.com/-Z8lhnIjJIxE/VCkiHiZxCGI/AAAAAAAABrc/XF7oPi2g3Mk/s1600/02.%E6%96%B0%E5%A2%9E%E6%AD%A5%E7%BD%B2Step.png)](http://2.bp.blogspot.com/-Z8lhnIjJIxE/VCkiHiZxCGI/AAAAAAAABrc/XF7oPi2g3Mk/s1600/02.%E6%96%B0%E5%A2%9E%E6%AD%A5%E7%BD%B2Step.png) 就可以找到剛建置出來的套件 [![](http://4.bp.blogspot.com/-Cwnpf4xmYks/VCkiHjpMRdI/AAAAAAAABrY/IL4ip64ddY8/s1600/03.%E9%81%B8%E6%93%87%E5%A5%97%E4%BB%B6.png)](http://4.bp.blogspot.com/-Cwnpf4xmYks/VCkiHjpMRdI/AAAAAAAABrY/IL4ip64ddY8/s1600/03.%E9%81%B8%E6%93%87%E5%A5%97%E4%BB%B6.png) 回到TeamCity新增一個部署設定 [![](http://1.bp.blogspot.com/-2hVQBVI5FGg/VCkiIYd3vPI/AAAAAAAABrg/30Q4soZJvkU/s1600/04.%E6%96%B0%E5%A2%9E%E9%83%A8%E7%BD%B2%E5%B0%88%E6%A1%88.png)](http://1.bp.blogspot.com/-2hVQBVI5FGg/VCkiIYd3vPI/AAAAAAAABrg/30Q4soZJvkU/s1600/04.%E6%96%B0%E5%A2%9E%E9%83%A8%E7%BD%B2%E5%B0%88%E6%A1%88.png) 在Trigger中新增一個建置完成觸發事件,指定到對應的專案 [![](http://4.bp.blogspot.com/-ROmAs_Tl5qY/VCkiIi3CO_I/AAAAAAAABrk/iNQEOH-dwKY/s1600/05.%E5%BB%BA%E7%BD%AETrigger%E6%96%B0%E5%A2%9E.png)](http://4.bp.blogspot.com/-ROmAs_Tl5qY/VCkiIi3CO_I/AAAAAAAABrk/iNQEOH-dwKY/s1600/05.%E5%BB%BA%E7%BD%AETrigger%E6%96%B0%E5%A2%9E.png) 在關聯性設定中,也把這個專案指定進來 [![](http://4.bp.blogspot.com/-IaQZvFCbfA4/VCkiItMFcII/AAAAAAAABro/ppW2dwwNADI/s1600/06.%E6%96%B0%E5%A2%9E%E9%97%9C%E8%81%AF.png)](http://4.bp.blogspot.com/-IaQZvFCbfA4/VCkiItMFcII/AAAAAAAABro/ppW2dwwNADI/s1600/06.%E6%96%B0%E5%A2%9E%E9%97%9C%E8%81%AF.png) 在版號的地方才能用%dep開頭的設定,取得這個專案目前的版號 [![](http://3.bp.blogspot.com/-mJjKvkDGHnE/VCkiI-EY_EI/AAAAAAAABrs/EL5AkEmhWyg/s1600/07.%E8%A8%AD%E5%AE%9A%E7%89%88%E8%99%9F.png)](http://3.bp.blogspot.com/-mJjKvkDGHnE/VCkiI-EY_EI/AAAAAAAABrs/EL5AkEmhWyg/s1600/07.%E8%A8%AD%E5%AE%9A%E7%89%88%E8%99%9F.png) 建置步驟選擇OctopusDeploy: Create release [![](http://1.bp.blogspot.com/-N3IP4kF2I58/VCkiJNkJraI/AAAAAAAABrw/57LbhpwOkfs/s1600/08.%E9%81%B8%E6%93%87%E5%BB%BA%E7%BD%AE%E9%83%A8%E7%BD%B2.png)](http://1.bp.blogspot.com/-N3IP4kF2I58/VCkiJNkJraI/AAAAAAAABrw/57LbhpwOkfs/s1600/08.%E9%81%B8%E6%93%87%E5%BB%BA%E7%BD%AE%E9%83%A8%E7%BD%B2.png) 輸入Octopus URL和API Key 再輸入專案名稱和要連立版本的版號 如果要順便部署環境的話,就在Deploy To中輸入環境名稱 再把Wait for deployment to complete勾起來就行了 [![](http://1.bp.blogspot.com/-O_2Habk45Yo/VCkiJQdQ-EI/AAAAAAAABr0/11DQQ0IDrPQ/s1600/09.%E8%A8%AD%E5%AE%9A%E5%BB%BA%E7%BD%AE.png)](http://1.bp.blogspot.com/-O_2Habk45Yo/VCkiJQdQ-EI/AAAAAAAABr0/11DQQ0IDrPQ/s1600/09.%E8%A8%AD%E5%AE%9A%E5%BB%BA%E7%BD%AE.png) 建置成功 [![](http://1.bp.blogspot.com/-l4WiqDvB-9M/VCkiJqUgMiI/AAAAAAAABr4/tR0CZlH9JCA/s1600/10.%E5%BB%BA%E7%BD%AE%E6%88%90%E5%8A%9F.png)](http://1.bp.blogspot.com/-l4WiqDvB-9M/VCkiJqUgMiI/AAAAAAAABr4/tR0CZlH9JCA/s1600/10.%E5%BB%BA%E7%BD%AE%E6%88%90%E5%8A%9F.png) 自動新增一個部署版本了 [!


TeamCity 打包 Octopus 部署套件

首先新建一個建置設定 [![](http://4.bp.blogspot.com/-1hnowCI7ZBM/VCkcK6DJ23I/AAAAAAAABpM/tcbGZTMFF7I/s1600/01.%E9%96%8B%E6%96%B0%E5%B0%88%E6%A1%88.png)](http://4.bp.blogspot.com/-1hnowCI7ZBM/VCkcK6DJ23I/AAAAAAAABpM/tcbGZTMFF7I/s1600/01.%E9%96%8B%E6%96%B0%E5%B0%88%E6%A1%88.png) 設定SVN路徑 [![](http://4.bp.blogspot.com/-MbNEf3JsBJo/VCkcPahMcqI/AAAAAAAABpU/zj_3Q7qtu74/s1600/02.%E8%A8%AD%E5%AE%9Asvn.png)](http://4.bp.blogspot.com/-MbNEf3JsBJo/VCkcPahMcqI/AAAAAAAABpU/zj_3Q7qtu74/s1600/02.%E8%A8%AD%E5%AE%9Asvn.png) SVN的細部設定 [![](http://4.bp.blogspot.com/-j2ZooaYc4jU/VCkcXM4-fRI/AAAAAAAABpc/y22W60orsug/s1600/04.%E7%B4%B0%E9%83%A8%E8%A8%AD%E5%AE%9A.png)](http://4.bp.blogspot.com/-j2ZooaYc4jU/VCkcXM4-fRI/AAAAAAAABpc/y22W60orsug/s1600/04.%E7%B4%B0%E9%83%A8%E8%A8%AD%E5%AE%9A.png) 取用trunk為根目錄 [![](http://1.bp.blogspot.com/-SNggN_J2dx4/VCkcbDRKANI/AAAAAAAABpk/CnjPPxJyhcs/s1600/03.%E6%8C%87%E5%AE%9Atrunk.png)](http://1.bp.blogspot.com/-SNggN_J2dx4/VCkcbDRKANI/AAAAAAAABpk/CnjPPxJyhcs/s1600/03.%E6%8C%87%E5%AE%9Atrunk.png) 設定版號 [![](http://4.bp.blogspot.com/-58uT3yqTydA/VCkcfSDV4JI/AAAAAAAABps/BATMEcHU7zM/s1600/07.%E7%89%88%E8%99%9F.png)](http://4.bp.blogspot.com/-58uT3yqTydA/VCkcfSDV4JI/AAAAAAAABps/BATMEcHU7zM/s1600/07.%E7%89%88%E8%99%9F.png) 第一個建置步驟是NuGet Installer,選擇方案檔即可 如果有自訂的NuGet來源,要記得輸入 [![](http://2.bp.blogspot.com/-ysXS6Jmxytc/VCkckW2udOI/AAAAAAAABp0/xOI5ZJgOsjM/s1600/05.%E5%A5%97%E4%BB%B6%E9%82%84%E5%8E%9F.png)](http://2.bp.blogspot.com/-ysXS6Jmxytc/VCkckW2udOI/AAAAAAAABp0/xOI5ZJgOsjM/s1600/05.%E5%A5%97%E4%BB%B6%E9%82%84%E5%8E%9F.png) 接下來可以建置專案了,勾選方案檔即可 在Run OctoPack這邊也勾選起來,輸入建置版號即可 [![](http://2.bp.blogspot.com/-umKldtIhOao/VCkcpdq-FAI/AAAAAAAABp8/k7DVLFr6_Yo/s1600/06.VS%E5%BB%BA%E7%BD%AE.png)](http://2.bp.blogspot.com/-umKldtIhOao/VCkcpdq-FAI/AAAAAAAABp8/k7DVLFr6_Yo/s1600/06.VS%E5%BB%BA%E7%BD%AE.png) 建置成功就會得到打包好的套件 [![](http://2.bp.blogspot.com/-nz0WK09gIac/VCkcuMFYPtI/AAAAAAAABqE/Sg17Ph4-jqs/s1600/08.%E5%BB%BA%E7%BD%AE%E6%88%90%E5%8A%9F.png)](http://2.bp.blogspot.com/-nz0WK09gIac/VCkcuMFYPtI/AAAAAAAABqE/Sg17Ph4-jqs/s1600/08.%E5%BB%BA%E7%BD%AE%E6%88%90%E5%8A%9F.png)


TeamCity 安裝 Octopus Deploy Integration 套件

首先到官網下載TeamCity Plugin http://octopusdeploy.com/downloads [![](http://3.bp.blogspot.com/-XNxjbgrc77Q/VCj_gC3rSjI/AAAAAAAABms/w1bLqfUxOcs/s1600/01.%E5%AE%98%E7%B6%B2%E4%B8%8B%E8%BC%89.png)](http://3.bp.blogspot.com/-XNxjbgrc77Q/VCj_gC3rSjI/AAAAAAAABms/w1bLqfUxOcs/s1600/01.%E5%AE%98%E7%B6%B2%E4%B8%8B%E8%BC%89.png) 把下載的zip檔,丟到TeamCity的Plugins資料夾下面 [![](http://4.bp.blogspot.com/-xoW5bvFoc8w/VCj_keKfYlI/AAAAAAAABm0/gMG9MFtcUbU/s1600/03.Plugins%E8%B3%87%E6%96%99%E5%A4%BE.png)](http://4.bp.blogspot.com/-xoW5bvFoc8w/VCj_keKfYlI/AAAAAAAABm0/gMG9MFtcUbU/s1600/03.Plugins%E8%B3%87%E6%96%99%E5%A4%BE.png) 重新啟動TeamCity後,就可以在Plugin列表中看到Octopus Deploy Integration套件 [![](http://3.bp.blogspot.com/-c9eevtd_CIA/VCj_tFiOC2I/AAAAAAAABm8/Hqca2hI8jyk/s1600/04.Plugin%E5%88%97%E8%A1%A8.png)](http://3.bp.blogspot.com/-c9eevtd_CIA/VCj_tFiOC2I/AAAAAAAABm8/Hqca2hI8jyk/s1600/04.Plugin%E5%88%97%E8%A1%A8.png) 在TeamCity的建置步驟中,會多出三個Runner Create release是新增發行版本,也可以順便部署的指定的環境 Deploy release是部署指定版本 Promote是把現有的版本從指定的環境部署到其他環境 [![](http://4.bp.blogspot.com/-8sf6WLcQtJ0/VCkBHJGU0rI/AAAAAAAABnE/j8I-2xap158/s1600/06.TeamCity%E5%BB%BA%E7%BD%AE%E6%96%B0%E5%A2%9E%E9%A0%85%E7%9B%AE.png)](http://4.bp.blogspot.com/-8sf6WLcQtJ0/VCkBHJGU0rI/AAAAAAAABnE/j8I-2xap158/s1600/06.TeamCity%E5%BB%BA%E7%BD%AE%E6%96%B0%E5%A2%9E%E9%A0%85%E7%9B%AE.png) 在VS建置Runner中,也會多出一個OctoPack的設定項目 勾選後會在建置參數中加入/p:RunOctoPack=true [![](http://2.bp.blogspot.com/-ugwpKzT9x9Y/VCkBRaltmnI/AAAAAAAABnM/1uDWOhBxUKE/s1600/05.VS%E6%96%B0%E5%A2%9E%E9%A0%85%E7%9B%AE.png)](http://2.bp.blogspot.com/-ugwpKzT9x9Y/VCkBRaltmnI/AAAAAAAABnM/1uDWOhBxUKE/s1600/05.VS%E6%96%B0%E5%A2%9E%E9%A0%85%E7%9B%AE.png) 參考資料 官網的說明和影片 http://docs.octopusdeploy.com/display/OD/TeamCity


Octopus部署專案

首先設定一下NuGet套件的來源,在設定中選擇NuGet,再點擊Add NuGet feed ](http://2.bp.blogspot.com/-eB-5_jr8Tco/UJe-gvfxniI/AAAAAAAAARs/Uf5vQaP2B9k/s1600/01.AddNuGetFeed.png) 輸入名稱和NuGet Server所在位置,如有需要授權就再輸入帳密,然後按下新增 ](http://3.bp.blogspot.com/-p-KdXHP_KvA/UJe-hAxku4I/AAAAAAAAAR0/_NYIRdWHbks/s1600/02.SaveNuGetFeed.png) 接下來先建立專案群組 ](http://2.bp.blogspot.com/-_xbwdU3aDvA/UJe-hmD6DmI/AAAAAAAAAR8/E_rbSdD6ous/s1600/03.ProjGroup.png) 再來選擇建立專案 ](http://2.bp.blogspot.com/-4gsASjDPLTU/UJe-iecxQoI/AAAAAAAAASE/qEAzaQGrxGg/s1600/04.CreateProj.png) 輸入專案資訊 ](http://4.bp.blogspot.com/-ZAwObqAo_KM/UJe-ivPrxWI/AAAAAAAAASM/OtkrLc6EIzc/s1600/05.AddProj.png) 新增完成,點擊專案名稱來設定部署 ](http://3.bp.blogspot.com/-OUKY0O9Ysoo/UJe-jGQvxYI/AAAAAAAAASU/RGDhTl0smos/s1600/06.AddProjSuccess.png) 選擇Steps,再點擊Add package step ](http://2.bp.blogspot.com/-gRHt3_sxa-0/UJe-j1SAj4I/AAAAAAAAASc/pjn3CciupCU/s1600/07.Steps.png) 輸入套件資料,如果專案有多個套件,可重覆此步驟 ](http://4.bp.blogspot.com/-aau7ZAIqhzo/UJe-kJ3IBsI/AAAAAAAAASk/RJ22IWIbMug/s1600/08.AddStep.png) 接下來建立發佈版本 ](http://1.bp.blogspot.com/-Q3sIi82aRWg/UJe-k7H2nEI/AAAAAAAAASs/FB5PLU39KK4/s1600/09.CreateRelease.png) 輸入版本資訊 ](http://4.bp.blogspot.com/-7hmX0qXpuP8/UJe-lqezpeI/AAAAAAAAAS0/s1zlTX_NIps/s1600/10.AddPack.png) 發佈版本資訊 ](http://3.bp.blogspot.com/-7NdYKSQqG9s/UJe-mEzRh5I/AAAAAAAAAS8/_7dyWOdaW9Q/s1600/11.Deploy.png) 執行發佈版本 ](http://2.bp.blogspot.com/-TAKCxk9v-tA/UJe-m1BFQCI/AAAAAAAAATE/3RJ0pHpepHQ/s1600/12.DeployPackage.png) 發佈成功 ](http://1.bp.blogspot.com/-TDX71V5yrrY/UJe-nIkvpYI/AAAAAAAAATM/du0maFJdsSs/s1600/13.DeploySuccess.png)


Octopus打包網站專案

先建一個HelloWorld的空白站台 ](http://1.bp.blogspot.com/-q-PoZn-V6so/UJey4s6A-gI/AAAAAAAAAQ4/VkzzC4SN6sQ/s1600/01.NewProject.png) 新增一個首頁,輸出Hello和目前時間 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace HelloWorld { public partial class _default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write(“hello:” + DateTime.Now.ToString()); } } } 接下來用NuGet安裝OctoPack套件 ](http://3.bp.blogspot.com/-JZBnLxWF4Fg/UJey5I_yqbI/AAAAAAAAARA/DPpwKjhGQAs/s1600/02.OctoPack.png) 新增一個nuspec檔案,但所有佔位符號都要手動輸入 <?xml version=”1.0”?> <package > <metadata> <id>HelloWorld</id> <version>1.0.0.0</version> <title>佈署測試用Package</title> <authors>Xian</authors> <owners>Xian</owners> <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl> <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl> <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>佈署測試用…</description> <releaseNotes>Summary of changes made in this release of the package.</releaseNotes> <copyright>Copyright 2012</copyright> <tags>Tag1 Tag2</tags> </metadata> </package> 選擇Release組態,按下建置 bin資料夾下就可以得到這個網站的套件 ](http://1.


安裝自動佈署工具Octopus

前言 首先到Octopus官網下載安裝檔 Octopus Install是Server端 Octopus Tentacle Installer是Client端 ](http://1.bp.blogspot.com/-H9qjtO_IV9U/UJemMZ4NxOI/AAAAAAAAAOM/j6zAcX16n6o/s1600/00.Files.png) 先下載Server端,然後一直下一步就可以安裝好了 ](http://4.bp.blogspot.com/-f3MuiPrHB4s/UJemNCMmQPI/AAAAAAAAAOU/q4eG1L3YYHo/s1600/01.install.png) 接下來會進入設定畫面,這邊選擇是否允許自動檢查更新和資料搜集 ](http://3.bp.blogspot.com/-_M8Of2TU_TI/UJemNQ5lMrI/AAAAAAAAAOc/E5rTE3tg61I/s1600/02.config.png) 這邊是資料存放的地方,自行輸入路徑按Save就行了 ](http://4.bp.blogspot.com/-4iTFrbVfLmg/UJemOjEH2kI/AAAAAAAAAOk/QWBc6XcdU8U/s1600/03.Location.png) 這邊是Service安裝,按下Install就行了 ](http://2.bp.blogspot.com/--gWTrNSFGak/UJemPANyFpI/AAAAAAAAAOs/KBMdCGKxpYM/s1600/04.Service.png) 這邊是網站的安裝,按下Create Site就行了 ](http://2.bp.blogspot.com/-CPrX6aLZMbg/UJemP-ZV5XI/AAAAAAAAAO0/bKO4k7-xDGY/s1600/05.Web.png) IIS中就會出現這個網站 ](http://4.bp.blogspot.com/-Yd13lI2ac34/UJemQaQmfRI/AAAAAAAAAO8/X9YSOI1eYc4/s1600/06.IIS.png) 第一次瀏覽這個網站的時後,會需要輸入管理員的密碼 ](http://3.bp.blogspot.com/-if_hX5Z9Sds/UJemQ4sqtpI/AAAAAAAAAPE/48yKRb2qmOE/s1600/07.DefaultPage.png) 通過密碼複雜度之後,就可以登入網站,Server端就安裝完成了 ](http://2.bp.blogspot.com/-08tk_T_LEkg/UJemRqKOHtI/AAAAAAAAAPM/9HZY8sUbAJY/s1600/08.Login.png)