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

   最近一直在學Ansible,詳見上篇博客,可是總感受使用ssh命令行操做有點low,另外官方也有收費版的Ansible Tower可視化軟件,可是因爲不開源,能夠參考的資料不多,官方卻是有一些英文手冊,但都是隻說了功能,並無操做步驟,對於咱們來說實在是難以上手,可是仍是想試試到底它有什麼高明的功能,因而下載了官方的試用版體驗一把。
nginx

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

1.jpg

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

3.jpg

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

2.jpg

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

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

1、開通github帳號,並建立倉庫bash

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

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

4、啓動resin(./bin/resin.sh start)ssh

5、在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

6、登陸剛剛建好的jenkins服務器

一、新建項目

4.jpg

二、配置項目

5.jpg

三、填寫代碼,確認項目

6.jpg

四、上線演示

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

7.jpg

五、上線過程展現

9.jpg

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

10.jpg

至此,演示完畢,若是須要演示代碼能夠去個人github下載(https://github.com/yx1991523/ansibledemo.git),感謝你們支持。

相關文章
相關標籤/搜索