項目(八) Jenkins持續集成與構建

Jenkins環境搭建

因爲Jenkins是依賴於java的,因此先介紹java環境的搭建html

1)使用官方的二進制包解壓安裝,官方二進制包的下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljava

(2)安裝java(解壓,移動便可)python

(3)配置java環境變量/etc/profilegit

(4)Jenkins的下載和運行web

而後咱們在瀏覽器上進行訪問:http://IP:8080 出現以下界面shell

Jenkins介紹和初始化配置

  • Jenkins的做用?windows

    • 可視化管理服務器
    • 持續構建,能夠直接去svn或者git上拉取代碼並下發到服務器上
    • 可視化ansible
  • Jenkins監聽端口8080瀏覽器

    • nohup java -jar jenkins.war &> /tmp/jenkins.out & #啓動Jenkins方式
    • netstat -antup | grep java #查看監聽端口
    • http://IP:8080 #訪問方式
  • Jenkins默認密碼路徑,須要到Jenkins所在的服務器進行查看安全

    • /root/.jenkins/secrets/initialAdminPassword

Jenkins初始化配置:服務器

將服務器上的密碼複製過來到瀏覽器上提交後,靜心等待,出現以下界面

(2)新添加一個用戶yunjisuan

QQ截圖20180622115907.png-25.3kB

(3)查看Jenkins的權限(登陸用戶能夠作任何事情)

系統管理--->全局安全配置

QQ截圖20180622121255.png-59.6kB

 

十五,Jenkins實現命令結果的可視化

(1)添加ssh方式的被管理服務器

系統管理--->系統設置--->找到Publish over SSH能夠添加對應的操做服務器

1.png-39.5kB

2.png-68.3kB

3.png-23.4kB

4.png-24.3kB

5.png-31kB

6.png-28.9kB

這就添加好一臺被管理的主機了。要繼續添加被管理的主機只須要重複以前的過程

QQ截圖20180622225504.png-19.2kB

(2)建立新任務*

11.png-34.1kB

12.png-67kB

13.png-16.2kB

14.png-43.8kB

(3)馬上構建任務並執行

31.png-39.1kB

32.png-44.7kB

33.png-42.5kB

34.png-45.6kB

35.png-38.3kB

36.png-92.6kB

 

十六,Jenkins+svn實現持續化集成

需求,開發改完代碼上傳到svn上,而後運維打包最新版本代碼部署到業務服務器上。
svn的部署與應用請參考專題(一)

 

16.1 設置svn的鏈接密碼,並進行代碼的部署測試

411.png-48.4kB

412.png-42.8kB

413.png-37kB

414.png-31kB

415.png-27.4kB

416.png-36.5kB

417.png-45kB

420.png-41.4kB

419.png-45.1kB

設置完畢後,應用保存。
在windows上對svn的yunjisuan項目進行版本提交後
選擇馬上構建項目

QQ截圖20180626002020.png-20.5kB

 
  1. [root@webB tmp]# hostname -I
  2. 192.168.200.138
  3. [root@webB tmp]# ls /tmp/test/
  4. mycode
  5. [root@webB tmp]# ls /tmp/test/mycode/
  6. python.py 雲計算最終架構示例模板(一).png 雲計算最終架構示例模板(二).png 雲計算期中架構模版(一).png
 

16.2 模擬真實環境web服務器的代碼部署和備份

 
  1. [root@localhost tmp]# mkdir -p /www/{html,backup}
  2. [root@localhost tmp]# tree /www/
  3. /www/
  4. ├── backup #html網頁目錄的備份放置目錄
  5. └── html #網頁目錄

在jenkins上設置webA,webB兩臺服務器做爲項目的構建目標

911.png-42.6kB

912.png-37.4kB

將如下shell腳本代碼複製到構建目標的Exec command裏

 
  1. #備份web服務器舊網頁目錄代碼,並將部署到服務器上的新代碼覆蓋到網頁目錄裏
  2. cd /www
  3. /usr/bin/tar zcf html_$(date +%F-%H-%S).tar.gz html
  4. rm -rf html/*
  5. mv html_*.tar.gz backup/
  6. mv /tmp/test/* /www/html/

913.png-51.5kB

選擇馬上構建進行測試

 
  1. #檢查webA和webB,代碼構建狀況
  2. [root@webA tmp]# tree /www/
  3. /www/
  4. ├── backup
  5.    └── html_2018-06-25-12-58.tar.gz #舊網頁目錄備份
  6. └── html
  7. └── mycode
  8. ├── python.py
  9. ├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\270\200\357\274\211.png
  10. ├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\272\214\357\274\211.png
  11. └── \344\272\221\350\256\241\347\256\227\346\234\237\344\270\255\346\236\266\346\236\204\346\250\241\347\211\210\357\274\210\344\270\200\357\274\211.png
  12. 3 directories, 5 files
  13. [root@webB tmp]# tree /www/
  14. /www/
  15. ├── backup
  16.    └── html_2018-06-25-12-58.tar.gz #舊網頁目錄備份
  17. └── html
  18. └── mycode
  19. ├── python.py
  20. ├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\270\200\357\274\211.png
  21. ├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\272\214\357\274\211.png
  22. └── \344\272\221\350\256\241\347\256\227\346\234\237\344\270\255\346\236\266\346\236\204\346\250\241\347\211\210\357\274\210\344\270\200\357\274\211.png
  23. 3 directories, 5 files
 

16.3 模擬真實環境,開發進行代碼回滾

QQ截圖20180626011200.png-5kB

(1)右鍵點擊共享目錄選擇TortoiseSVN--->Show log

QQ截圖20180626011434.png-28.9kB

右鍵點擊想要回滾的版本選擇Revert to this revision

QQ截圖20180626011605.png-14.7kB

QQ截圖20180626011617.png-30kB

此時你發現你的共享目錄裏的東西已經被回滾到了指定的版本。
最後咱們千萬別忘記了右鍵點擊共享目錄,將結果進行提交(SVN commit)

QQ截圖20180626011751.png-32.8kB

(2)從新進行jenkins項目構建,並檢查部署狀況

 
  1. [root@webA tmp]# tree /www/
  2. /www/
  3. ├── backup
  4. ├── html_2018-06-25-12-58.tar.gz
  5. └── html_2018-06-25-13-15.tar.gz
  6. └── html
  7. └── mycode
  8. ├── python.py
  9. └── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
  10. 3 directories, 4 files
  11. [root@webB tmp]# tree /www/
  12. /www/
  13. ├── backup
  14.    ├── html_2018-06-25-12-58.tar.gz
  15.    └── html_2018-06-25-13-15.tar.gz
  16. └── html
  17. └── mycode
  18. ├── python.py
  19. └── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
  20. 3 directories, 4 files

QQ截圖20180626011930.png-19.7kB

至此,測試成功!

 

十七,Jenkins實現ansible可視化

(1)安裝jenkins ansible插件,啓動ansible插件

1.png-44.8kB

2.png-68.3kB

3.png-51kB

4.png-17.6kB

最後進入安裝界面最下方勾選,安裝完成時重啓Jenkins

5.png-36.3kB

(2)系統管理--->全局工具配置---->配置ansible

11.png-24.5kB

12.png-52.5kB

13.png-17.1kB

14.png-33.5kB

15.png-9.6kB

(3)新建一個項目任務,使用ansible進行構建,跑個shell和copy模塊

新建一個叫作ansible_test的新項目任務,過程略

16.png-87.3kB

進入項目的配置裏。構建一個基於ansible的任務

17.png-51.7kB

18.png-53.4kB

而後點擊馬上構建功能,並查看輸出結果

19.png-35.5kB

(4)新建一個項目任務,使用ansible-playbook進行構建

 
  1. #準備一個playbook的配置文件
  2. [root@ansible scripts]# cat /service/scripts/test.yaml
  3. ---
  4. - hosts: all
  5. tasks:
  6. - name: test jenkins ansible-playbook
  7. shell: echo "welcome to yunjisuan" >> /tmp/yunjisuan.txt

而後新建一個新的項目任務,進行配置

21.png-31.3kB

22.png-32.6kB

23.png-41.3kB

55.png-49kB

56.png-41.3kB

最後查看構建的可視化輸出結果

99.png-42.4kB

相關文章
相關標籤/搜索