1.1 刪除以前版本的Dockerphp
sudo yum remove docker docker-common docker-selinux docker-engine
1.2 安裝一些依賴java
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.3 下載repo文件node
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
1.4 把軟件倉管地址替換爲 TUNA:linux
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
1.5 安裝git
sudo yum makecache fast sudo yum install docker-ce
參考文檔:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/github
1.6 安裝完成後可使用:dock version 命令查看docker信息web
[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
2.1 先確認完成docker環境安裝,再執行此步驟spring
2.2 參考文檔:docker
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
在控制檯顯示信息以下
... org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@6b4ba523]: org.springframework.beans.factory.support.DefaultListableBeanFactory@ed6a5eb Nov 26, 2017 5:29:44 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ed6a5eb: defining beans [authenticationManager]; root of factory hierarchy Nov 26, 2017 5:29:45 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@6fd126d1: display name [Root WebApplicationContext]; startup date [Sun Nov 26 05:29:45 UTC 2017]; root of context hierarchy Nov 26, 2017 5:29:45 AM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@6fd126d1]: org.springframework.beans.factory.support.DefaultListableBeanFactory@62e4ea3c Nov 26, 2017 5:29:45 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@62e4ea3c: defining beans [filter,legacy]; root of factory hierarchy Nov 26, 2017 5:29:46 AM jenkins.install.SetupWizard init INFO: ************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: da4d937a40144c53a05e4383273c902b This may also be found at: /var/jenkins_home/secrets/initialAdminPassword ************************************************************* ************************************************************* ************************************************************* --> setting agent port for jnlp --> setting agent port for jnlp... done Nov 26, 2017 5:30:15 AM hudson.model.UpdateSite updateData INFO: Obtained the latest update center data file for UpdateSource default Nov 26, 2017 5:30:17 AM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller Nov 26, 2017 5:30:21 AM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tools.JDKInstaller Nov 26, 2017 5:30:21 AM hudson.model.AsyncPeriodicWork$1 run INFO: Finished Download metadata. 42,015 ms Nov 26, 2017 5:30:48 AM hudson.model.UpdateSite updateData INFO: Obtained the latest update center data file for UpdateSource default Nov 26, 2017 5:30:48 AM hudson.WebAppMain$3 run INFO: Jenkins is fully up and running
3.7 打開登錄界面,根據提示輸入上面的顯示的密碼
3.8 選擇默認推薦安裝的插件
3.9 等待插件安裝
3.10 設置帳戶密碼
....
3.11 進入頁面
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項目自動編譯發佈
定時自動發版工具 插件 MSBuild Plugin subversion.hpi Global Tool Configuration MSBuild v4.0.30319 C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 任務 byexx SVN svn://192.168.xx.xx/boxx/Byexx.BOxx.Serxx@HEAD Build periodically Poll SCM * * * * * v4.0.30319 Byexxx.BOxx.API.sln /m /t:Rebuild /property:Configuration=Release;TargetFrameworkVersion=v3.5;OutputPath=D:\xx_site\sxx.com\bin 1.編譯完的路徑 2.svn://192.168.xx.xx/boxx/Byexx.BOxx.Serxx@HEAD
插件安裝,subversion或者git取決根據代碼服務器實際狀況選擇安裝便可
Global Tool Configuration添加MSBuild工具
配置項目
測試環境代碼拉取及日程表
構建及代碼發佈目錄配置
每分鐘輪詢如測試環境有新代碼提早就觸發代碼拉取編譯發
來自網絡