持續集成概念
持續集成 Continuous Integration
持續交付 Continuous Delivery
持續部署 Continuous Deployment
1.1 什麼是持續集成:
持續集成是指開發者在代碼的開發過程當中,能夠頻繁的將代碼部署集成到主幹,並進程自動化測試
1.3 什麼是持續交付:
持續交付指的是在持續集成的環境基礎之上,將代碼部署到預生產環境
1.4 持續部署:
在持續交付的基礎上,把部署到生產環境的過程自動化,持續部署和持續交付的區別就是最終部署到生產環境是自動化的。
1.5 部署代碼上線流程
1.代碼獲取(直接了拉取)
2.編譯 (可選)
3.配置文件放進去
4.打包
5.scp 到目標服務器
6.將目標服務器移除集羣
7.解壓並放置到 Webroot
8.Scp 差別文件
9.重啓 (可選)
10.測試
11.加入集羣
運維必知 OWASP
Jenkins 上 OWASP 插件介紹: 它是開放式 Web 應用程序安全項目[OWASP,Open Web Application Secunity Project]它每一年會出一個 top10 的安全漏洞,咱們須要知道當前 top10 的漏洞有哪些
https://www.owasp.org/images/5/57/OWASP_Proactive_Controls_2.pdf
https://www.owasp.org/index.php/Top_10_2013-Top_10
Gitlab 介紹
GitLab 是一個利用 Ruby on Rails 開發的開源應用程序,實現一個自託管的 Git 項目倉庫,
可經過 Web 界面進行訪問公開的或者私人項目。
GitLab 擁有與 Github 相似的功能,可以瀏覽源代碼,管理缺陷和註釋。能夠管理團隊對倉庫
的訪問,它很是易於瀏覽提交過的版本並提供一個文件歷史庫。它還提供一個代碼片斷收集功能可
以輕鬆實現代碼複用,便於往後有須要的時候進行查找。
環境準備php
上傳所需安裝包
html
1.安裝gitlab
rpm -ivh gitlab-ce-11.9.8-ce.0.el6.x86_64.rpm
2.初始化gitlab
gitlab-ctl reconfigure
3.瀏覽器登錄gitlab
4.新建一個項目linux
在Linux生成密鑰並複製
ssh-keygen -t rsa 生成密鑰
cat /root/.ssh/id_rsa.pub 查看密鑰並複製git
放置密鑰web
進入本身的項目
5.設置項目在linux
參考web上的介紹
(1) 建立用戶和所需郵箱代表身份vim
[root@localhost ~]# git config --global user.name 「admin」 [root@localhost ~]# git config --global user.email admin@admin.com
(2) 克隆一個倉庫windows
git clone git@192.168.1.40:root/xgp-demo.git [root@localhost ~]# cd xgp-demo/ 進入庫 [root@localhost xgp-demo]# vim index.html 建立測試文件 [root@localhost xgp-demo]# git add index.html 上傳測試文件到緩存 [root@localhost xgp-demo]# git commit -m "1" 上傳到版板庫 [root@localhost xgp-demo]# git push -u origin master 上傳到運程倉庫
(3).修改配置文件瀏覽器
[root@localhost xgp-demo]# vim /etc/gitlab/gitlab.rb external_url 'http://192.168.1.40' #13行
(4).從新初始化一下
gitlab-ctl reconfigure緩存
Jenkins 介紹
Jenkins 只是一個平臺,真正運做的都是插件。這就是 jenkins 流行的緣由,由於 jenkins 什麼插件都有Hudson 是 Jenkins 的前身,是基於 Java 開發的一種持續集成工具,用於監控程序重複的工做,
Hudson 後來被收購,成爲商業版。後來創始人又寫了一個 jenkins, jenkins 在功能上遠遠超過
hudson
Jenkins 官網: https://jenkins.io/
Jenkins 是 Java 編寫的,因此須要先安裝 JDK,這裏採用 yum 安裝,若是對版本有需求,能夠
直接在 Oracle 官網下載 JDK。
安裝
1.安裝 JDK
rpm -ivh jenkins-2.172-1.1.noarch.rpm
2.修改JDK配置文件
vim /etc/sysconfig/jenkins
JENKINS_PORT="8081" #修改端口 56
3.啓動JDK並查看端口
/etc/init.d/jenkins start #啓動
netstat -anpt | grep 8081 #查看的端口
安全
(1)安裝方法一
複製這個文件下面的 ID,不然不能夠進行安裝。咱們選擇推薦安裝便可
設置用戶名密碼:
點擊保存並退出
(3) 安裝方法二
[root@localhost ~]# tar zxf jenkins-plugins.tar.gz #解壓所需安裝包 [root@localhost ~]# rm -rf /var/lib/jenkins/plugins/ #刪除目錄 [root@localhost ~]# mv plugins/ /var/lib/jenkins/ #將替換目錄移動過去 [root@localhost ~]# /etc/init.d/jenkins restart #重啓JDK Restarting jenkins (via systemctl): [ 肯定 ]
瀏覽器查看一下
Linux查看密碼並複製到web頁面 ,而後點擊繼續 (記得斷網)
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
bb220f4cf61d46999ba7f6686eeecf32
3.安裝完成查看一下插件
項目:使用 git+jenkins 實現持續集成
(1) 方法一
源碼管理
咱們安裝的是 git 插件,還能夠安裝 svn 插件
們將 git 路徑存在這裏還須要權限認證,不然會出現 error
cat /root/.ssh/id_rsa 查看密鑰方式
咱們添加一個認證
如今咱們複製 git 的 url 就不會出現驗證提示
(2)方法二
保存完畢後,咱們選擇當即構建
構建成功
Linux上查看一下
再次點擊projects--your project- -web- demo--settings-- Integrations -- JENKINS_ URL/ job/web- demo/build?token=TOKEN NAME- -取消勾選Enable SSL verification
4.測試一下
能夠看到又有報錯:解決方法
回到jenkins頁面
系統管理---全局安全設置---受權策略-- -取消勾選防止跨站點請求僞造
勾選匿名用戶具備可讀權限
系統管理--系統設置---取消勾選Enable authentication for '/project' end-point
回到gitlab測試一下
成功
在Linux上建立測試文件,再次測試一下
49 cd xgp-demo/ 50 vim xgp.txt 51 git add xgp.txt 52 git commit -m "web hook" 53 git push origin master
在web界面的jenkins查看一下
實驗完畢