Jenkins+Ansible+Gitlab自動化部署實踐

   最近一直在學Ansible,詳見上篇博客,但是總感覺使用ssh命令行操作有點low,另外官方也有收費版的Ansible Tower可視化軟件,但是由於不開源,可以參考的資料很少,官方倒是有一些英文手冊,但都是隻說了功能,並沒有操作步驟,對於我們來講實在是難以上手,但是還是想試試到底它有什麼高明的功能,於是下載了官方的試用版體驗一把。

   最初的體驗還是不錯的,可以在頁面上添加主機,添加任務,添加項目等等,並且執行起來效果也很舒服,如下圖:

1.jpg

有各種各樣的狀態和信息,並且以彩色顯示,一眼就能看出成功與失敗。但是正要興奮的時候,問題來了,測試機器有一兩臺很好說,如果是大量集羣,有成百上千臺機器怎麼辦呢?我在inentory添加host的頁面只看到瞭如下界面

3.jpg

難道只能一臺一臺添加嗎?這豈不是開玩笑?我繼續檢索相關文檔,官方只是說可以通過雲主機的source添加(如下圖),可是我們不是雲主機啊,就是物理機,難道就沒有辦法了嗎?

2.jpg

經過一天的檢索依然未果,如果各路大神有辦法批量添加主機請聯繫我,qq1848473726.謝謝。

既然付費的軟件都行不通,那估計還是閉源就無人問津,社區也就不活躍,也就沒辦法幫他優化,那作爲一個互聯網人還是訴諸於開源吧,經過檢索資料,查到如下一篇文章,叫《Jenkins+Ansible+Gitlab自動化部署三劍客》(http://www.showerlee.com/archives/1880)。所以我就模仿前輩的方法自己做了一個nginx的部署實驗。

一、開通github賬號,並創建倉庫

二、在虛擬機上安裝Java、resin(下載二進制包即可,tar.gz)和ansible(yum install ansible –y)

三、下載jenkins的war包(http://mirrors.jenkins.io/war-stable/)到resin的webapps文件夾,並重命名爲ROOT.war

四、啓動resin(./bin/resin.sh start)

五、在windows操作系統上編寫playbooks,並用git-bash終端上傳至github倉庫,這一步可以參考該文章:https://blog.csdn.net/qq_31852701/article/details/52944312 需要注意的是如果使用ssh方式要先把主機的公鑰上傳至GitHub,該步驟可參考:https://blog.csdn.net/qq_35246620/article/details/69061355?locationNum=11&fps=1

六、登錄剛剛建好的jenkins服務器

1、新建項目

4.jpg

2、配置項目

5.jpg

3、填寫代碼,確認項目

6.jpg

4、上線演示

爲了保證安全,可以分爲兩個下拉菜單,一個是單臺主機,另一個爲主機組,如下圖。nb441爲單臺主機的主機名,web爲一個主機組。第一次建議部署一臺主機,測試後沒問題再部署整個組。

7.jpg

5、上線過程展示

9.jpg

6、當單臺部署沒問題之後,方可部署整個主機組,如下圖。

10.jpg

至此,演示完畢,如果需要演示代碼可以去我的github下載(https://github.com/yx1991523/ansibledemo.git),感謝大家支持。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章