什麼是持續集成php
- Continuous integration (CI) 持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程能夠大大減小集成的問題,讓團隊可以更快的開發內聚的軟件。
持續集成最佳實踐html
- 維護一個單一的代碼庫
- 使構建自動化
- 執行測試是構建的一部分
- 集成日誌及歷史記錄
- 使用統一的依賴包管理庫
- 天天至少集成一次
什麼是jenkinsjava
- 持續集成、自動測試、持續部署的超級引擎,支持自定義工具集、多種交付通道
jenkins安裝git
- 安裝依賴 yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
- 安裝yum源 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
- rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
- rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
- 安裝Jenkins
- yum –y install jenkins
- service jenkins start
- ckconfig Jenkins on
訪問jenkinsweb
- 訪問Jenkins
- http://192.168.1.110:8080
- 查找admin默認密碼
- cat /var/lib/jenkins/secrets/initialAdminPassword
- 輸入密碼
安裝默認插件json
經常使用插件安全
- OWASP Markup Formatter Plugin 安全
- Pipeline 工做流
- SonarQube 代碼質檢
- SSH plugin
- GitLab Plugin
- Git plugin
- Git Parameter Plug-In 照標籤去發佈
- Deploy Plugin
- Maven Integration plugin
- Role-based Authorization Strategy
插件管理ssh
- 系統設置>插件管理
- 更新插件、下載安裝、代理設置、可用插件
- 手工安裝
- 下載地址
- http://updates.jenkins-ci.org/
覆蓋插件目錄工具
- mv plugins /var/lib/jenkins/
- chown -R jenkins.jenkins plugins/
鏡像管理gitlab
- 所有鏡像
- http://mirrors.jenkins-ci.org/status.html
- 更換鏡像
- http://updates.jenkins-ci.org/update-center.json
- https://mirrors.tuna.tsinghua.edu.cn/
- http://mirror.esuni.jp/jenkins/updates/update-center.json
- https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
jenkins目錄
- /var/lib/jenkins 主目錄
- /etc/init.d/jenkins 啓動文件
- /var/cache/Jenkins 程序文件
- /var/log/Jenkins 日誌文件
用戶權限
- 修改/etc/init.d/Jenkins
- 將用戶修改成root,能夠調用root工具
- 106行,113行
- 修改啓動端口85行,$JENKINS_PORT
- systemctl daemon-reload
- service jenkins restart
卡啓動問題
- 修改/etc/init.d/Jenkins
- 將用戶修改成root,能夠調用root工具
- 106行,113行
- 修改啓動端口85行,$JENKINS_PORT
- systemctl daemon-reload
- service jenkins restart
備份
- tar zcf jenknis.tar.gz /var/lib/jenkins/
用到的插件有
GitLab Plugin(gitlab插件)

jenkins主機的私鑰

gitlab的delopy是jenkins主機的公鑰
構建的話,就會自動去gitlab上拉取項目到/var/lib/jenkins/workspace裏面
SonarQube Scanner for Jenkins(功能與Scanner效果同樣)
全局工具配置

系統配置

項目配置

Parameterized Trigger plugin(觸發器插件)
用於一個項目構建完成後觸發另外一個項目

Build Pipeline Plugin(流水線插件)

Gitlab Hook Plugin(gitlab勾子插件)
Build Authorization Token Root Plugin(受權令牌插件)

gitlab令牌認證就是webhook,咱們是點了若是有push就會執行

buildByToken/build?job=RevolutionTest&token=TacoTuesday
http://192.168.1.105:8080/project/demo-sonr-scan
http://192.168.1.105:8080/buildByToken/build?job=demo-sonr-scan&token=123456
Git Parameter(git參數構建插件)根據標籤去發佈
gitlab上須要打tag標籤


SSH(ssh插件)


jenkins集羣

節點管理,新建節點

會自動在設置的目錄下載jenkins的slave的jar包

分配到節點

按角色受權
Role-based Authorization Strategy(插件)
全局安全配置

管理用戶
添加2個用戶,java,php

系統配置裏面 Manage and Assign Roles 管理分配角色

分配角色

注意,在local role裏面,JAVA-TEAM是沒有的,因此用用戶去寫,好比JAVA,PHP用戶便可。
用戶java上來只能看到java開頭的項目,用戶php上來只能看到php開頭的項目