最近一直在學Ansible,詳見上篇博客,但是總感覺使用ssh命令行操作有點low,另外官方也有收費版的Ansible Tower可視化軟件,但是由於不開源,可以參考的資料很少,官方倒是有一些英文手冊,但都是隻說了功能,並沒有操作步驟,對於我們來講實在是難以上手,但是還是想試試到底它有什麼高明的功能,於是下載了官方的試用版體驗一把。
最初的體驗還是不錯的,可以在頁面上添加主機,添加任務,添加項目等等,並且執行起來效果也很舒服,如下圖:
有各種各樣的狀態和信息,並且以彩色顯示,一眼就能看出成功與失敗。但是正要興奮的時候,問題來了,測試機器有一兩臺很好說,如果是大量集羣,有成百上千臺機器怎麼辦呢?我在inentory添加host的頁面只看到瞭如下界面
難道只能一臺一臺添加嗎?這豈不是開玩笑?我繼續檢索相關文檔,官方只是說可以通過雲主機的source添加(如下圖),可是我們不是雲主機啊,就是物理機,難道就沒有辦法了嗎?
經過一天的檢索依然未果,如果各路大神有辦法批量添加主機請聯繫我,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、新建項目
2、配置項目
3、填寫代碼,確認項目
4、上線演示
爲了保證安全,可以分爲兩個下拉菜單,一個是單臺主機,另一個爲主機組,如下圖。nb441爲單臺主機的主機名,web爲一個主機組。第一次建議部署一臺主機,測試後沒問題再部署整個組。
5、上線過程展示
6、當單臺部署沒問題之後,方可部署整個主機組,如下圖。
至此,演示完畢,如果需要演示代碼可以去我的github下載(https://github.com/yx1991523/ansibledemo.git),感謝大家支持。