Jenkins系統架構圖php
一,安裝docker-ce版本html
1.1 刪除以前版本的Dockerjava
sudo yum remove docker docker-common docker-selinux docker-engine
1.2 安裝一些依賴node
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.3 下載repo文件linux
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
1.4 把軟件倉管地址替換爲 TUNA:git
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
1.5 安裝github
sudo yum makecache fast sudo yum install docker-ce
參考文檔:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/web
1.6 安裝完成後能夠使用:dock version 命令查看docker信息docker
[root@linux-node1 ~]# docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.8.3 Git commit: afdb6d4 Built: Tue Sep 26 22:41:23 2017 OS/Arch: linux/amd64 Server: Version: 17.09.0-ce API version: 1.32 (minimum version 1.12) Go version: go1.8.3 Git commit: afdb6d4 Built: Tue Sep 26 22:42:49 2017 OS/Arch: linux/amd64 Experimental: false
二,安裝docker-compose數據庫
2.1 先確認完成docker環境安裝,再執行此步驟
2.2 參考文檔:
https://docs.docker.com/compose/install/
2.3 以linux爲例:
2.3.1下載docker compose執行文件
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.3.2 添加執行權限
sudo chmod +x /usr/local/bin/docker-compose
2.3.3 驗證結果
docker-compose --version docker-compose version 1.17.0, build 1719ceb
三,下載鏡像文件
3.1 配置國內docker鏡像加速,國內拉取官方docker鏡像速度較慢
[root@linux-node1 data]# more /etc/docker/daemon.json {"registry-mirrors": ["http://4c7d9402.m.daocloud.io"]}
3.2 下載docker的Jenkins鏡像
docker pull jenkins:latest
3.3 下載gitlab-ce(若是須要能夠下載,可選擇)
docker pull gitlab/gitlab-ce:latest
3.4 下載daoker的sonarqube(若是須要能夠下載,可選擇)
docker pull sonarqube:latest
3.5 驗證docker鏡像下載結果
[root@linux-node1 data]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE gitlab/gitlab-ce latest 733cc235d0c0 3 days ago 1.38GB sonarqube latest c1637bd4502f 12 days ago 934MB jenkins latest 3f08dc4f3f5d 3 weeks ago 809MB
3.6 啓動jenkins的docker鏡像
docker run -it --name jenkinsci0001 -v $HOME/jenkins:/var/ -p 8888:8080 -p 55000:50000 -p 45000:45000 jenkins:latest
在控制檯顯示信息以下
3.7 打開登錄界面,根據提示輸入上面的顯示的密碼
3.8 選擇默認推薦安裝的插件
3.9 等待插件安裝
3.10 設置帳戶密碼
....
3.11 進入頁面
四,使用yum安裝部署Jenkins
4.1 添加源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
4.2 導入key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
4.3 yum安裝 jenkins
yum install jenkins -y
在2015年前咱們公司上線流程是:
1.測試環境權限開發給開發人員,開發調試看日誌拉代碼都是開發本身登錄到測試機上面操做
2.開發提測,QA經過後,開發人員發郵件到ops抄送其餘相關部門申請上線,須要開發主管確認等,ops再登服務器拉取發佈代碼到生產環境(就是說項目定在幾點上或者延遲上ops都得苦逼的等着)
3.ops發佈完成回覆郵件(每星期都會收到大量的上線郵件)
4.QA回滾測試
在2016年ops和其餘同行聊天抱怨的時候,人家說大家怎麼不用Jenkins。那時候由於年少無知Jenkins是什麼鬼啊,而後回來就開始研究,直到下半年就開始慢慢都用上了,如今是:
測試環境:收回開發人員登陸系統權限,代碼自動觸發更新,日誌經過ELK實時查看
生產環境:ops基本不參與上線項目,和開發負責人確認哪些開發人員能夠有哪些項目的上線權限,ops受權開發人員上線,服務器上面有代碼更新會腳本自動發郵件到ops。
具體開發內部怎麼上線由開發負責人決定,當業務有問題的時候ops再根據Jenkis的上線記錄排查問題,ops能夠節省大量時間去其它維護工做。
相關的項目:php java .net
版本庫有:svn gitlab
服務器系統:CentOS Windows
Jenkins系統設置:須要在Jenkins服務器上安裝一些工具軟件,而後再web界面添加環境變量等信息,這裏用的ssh祕鑰和服務器同步代碼
配置Jenkins帳號和Gitlab帳號信息有關聯
設置Jenkins專有用戶數據庫
Androids apk打包配置
Java編譯發佈配置
項目構建狀況,測試環境在Gitlab的trunk分鐘,開發人員提交代碼到trunk就會觸發Jenkins拉取代碼發佈到業務服務器上面
php正式環境須要開發主管本身登錄到Jenkins進行點擊發布
用戶權限管理
用戶分組及項目建立
用戶項目權限分配
測試環境,自動構建
正式環境master分支,開發主管點擊構建發佈
GitLab8.9 Webhooks設置
使用Jenkins的裏面受權的帳號,GitLab的只讀權限就能夠
Windows配置Jenkins讓.NET項目自動編譯發佈
插件安裝,subversion或者git取決根據代碼服務器實際狀況選擇安裝便可
Global Tool Configuration添加MSBuild工具
配置項目
測試環境代碼拉取及日程表
構建及代碼發佈目錄配置
每分鐘輪詢如測試環境有新代碼提早就觸發代碼拉取編譯發
來自網絡