歡迎您光臨本站 註冊首頁

如實現自動化上線?

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

如實現自動化上線?

現狀:每次新的功能要上線,都是人工操作,首先備份程序、文件,然後,停掉現有的服務,或者將該服務的用戶切換到別的機器上去;
然後從預投產機器拷貝新的程序或者配置文件等,然後在啟動新的服務;這樣的操作要進行20多次,因為目前大概有20多台機器,但是以
后機器還會增加;不知道各位大神有沒有好的建議?如何實現自動化操作呢?
《解決方案》

結合FUNC實現

1、控制台註冊軟體包、應用(產品)和主機列表
2、控制台嚮應用(產品)的主機列表依次發送升級指令
3、A主機被從負載均衡集群中摘下,備份當前版本以備回退,從軟體包版本庫下載到A主機,解壓,執行安裝腳本,重啟服務
4、控制台檢測A主機返回的服務是否正常
5、控制台將A主機重新註冊回負載均衡集群
6、寫A成功或失敗日誌
7、B主機,重3-6
……
8、顯示發布成功或失敗主機列表和日誌
《解決方案》

批量執行命令,上傳文件
《解決方案》

首先實現在單台機器的自動話
然後實現console/agent方式

也可以
rsh實現主機對其他機器的遠程操作:mrgreen:
《解決方案》

zb850929 發表於 2012-06-11 14:36 static/image/common/back.gif
現狀:每次新的功能要上線,都是人工操作,首先備份程序、文件,然後,停掉現有的服務,或者將該服務的用戶 ...

首先使用RSA做ssh登錄認證,然後寫一個腳本a,
功能大致如下:
      批量上傳: a -l 伺服器列表 -u /home/file(本地文件) /home/new_file(遠程伺服器文件路徑)   
                          上傳本地文件home/file到列表中全部伺服器的/home/下重命名為 new_file
      批量執行: a -l 伺服器列表 -c "echo hello"  
                          對列表中的伺服器執行echo hello命令


--------------------
伺服器列表:
# 主機名               ssh埠     IP
bbs.name.com     12345  192.168.0.3
《解決方案》

我這兒是這樣實現的:
用rsync比對兩svn發部的當前本版本與上線版本代碼差異比對打包后 產生髮部的tgz文件,上傳ftp伺服器。
腳本再讀取當前發部錄入svn_url從資料庫表比對要發部的伺服器,用puppet集中發部

[火星人 ] 如實現自動化上線?已經有598次圍觀

http://coctec.com/docs/service/show-post-721.html