1.什麼是持續集成:
Continuous integration (CI)
持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程能夠大大減小集成的問題,讓團隊可以更快的開發內聚的軟件。html
2.沒有持續集成的情況:java
3.持續集成最佳實踐node
4.持續集成概覽linux
持續集成得過程:
先把代碼放到git、Jenkins從git獲取代碼進行構建、測試、生成結果再返回給客戶端。git
什麼是Jenkins:web
Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.
持續集成、自動測試、持續部署的超級引擎,支持自定義工具集、多種交付通道。shell
Jenkins的缺點:
Jenkins是開發人員開發得,沒有照顧到運維人員得感覺。CMDB得對接是Jenkins得短板。數據庫
操做步驟:apache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# 服務器環境:
[root@linux-node2 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
# 安裝依賴包
[root@linux-node2 ~]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 下載地址:【版本選擇以前得一個或兩個版本,選擇redhat-stable穩定版】
# 官方下載地址:https://pkg.jenkins.io/redhat-stable/
# 國內下載地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
# 安裝jenkins
[root@linux-node2 ~]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm
warning: jenkins-2.32.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing... ########################################### [100%]
1:jenkins ########################################### [100%]
# 查看服務狀態
[root@linux-node2 ~]# service jenkins status
jenkins 已停
# 啓動jenkins
[root@linux-node2 ~]# service jenkins start
Starting Jenkins [肯定]
# 查看端口8080是否已啓動
[root@linux-node2 ~]# netstat -lunpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1068/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1144/master
tcp 0 0 :::8080 :::* LISTEN 1523/java
tcp 0 0 :::22 :::* LISTEN 1068/sshd
tcp 0 0 ::1:25 :::* LISTEN 1144/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 954/dhclient
|
注意:YUM安裝方式【不推薦】
12345678910# 下載鏡像源
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
or
rpm --import http:
//pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum安裝jenkins
yum –y install jenkins
service jenkins start
ckconfig Jenkins
on
Jenkins初始化
第一步:
1
2
3
4
5
6
|
# 訪問Jenkins
http:
//192.168.152.129:8080
# 查找admin默認密碼,輸入密碼,點擊繼續
[root@linux-node2 ~]# cat /
var
/lib/jenkins/secrets/initialAdminPassword
637060046b114f6d92255944ab312940
|
第二步:
注意:卡啓動問題【採用離線模式】
Jenkins在第一次安裝啓動時會向官網回傳信息
若是網絡離線能夠正常安裝。
當網絡在線,可是https://jenkins-ci.io 沒法打開時,卡住。
解決:
若是出現卡啓動,把網絡關掉便可。之後再出現問題,都是jenkins服務器內存不夠了。
第三步:
第四步:
第五步:
第六步:
注意:【若是採用是聯網模式,有兩種方式,一種是安裝默認插件,時間比較長。一種是跳過安裝插件,點擊右上角得叉。】
更新插件、下載安裝、代理設置、可用插件
1. 默認插件:
插件用途:
Pipeline 工做流用到
Git plugin 拉代碼會用到
SSH Slaves plugin 作集羣
......
2.經常使用插件:
3.插件管理:
系統設置>插件管理
# 第一步:
# 第二步:
# 第三步:
4.批量更新插件
1
2
3
4
5
6
7
8
9
10
|
# 解壓到插件目錄中
[root@linux-node2 ~]# mv plugins.tar.gz /
var
/lib/jenkins/
[root@linux-node2 jenkins]# tar zxf plugins.tar.gz
# 添加jenkins權限
[root@linux-node2 jenkins]# chown -R jenkins.jenkins plugins
# 重啓下jenkins服務
[root@linux-node2 jenkins]# /etc/init.d/jenkins restart
Shutting down Jenkins [肯定]
Starting Jenkins [肯定]
|
5.手動安裝插件
a.手動安裝ssh插件,下載到桌面:
執行過程:設置--管理插件--高級--上傳
1
|
地址:http:
//updates.jenkins-ci.org/2.32/latest/ssh.hpi
|
注意:【插件更新】
插件安裝必定要對應大版本。
若是更新某個插件以後,報依賴問題,就恢復以前得插件。
# 第一步:
# 第二步:安裝中
# 第三步:安裝完成
b.經過可選插件進行升級安裝
可更新--選擇Git plugin
鏡像管理:
1
2
3
4
5
6
7
8
9
10
|
Jenkins全部鏡像地址:
http:
//mirrors.jenkins-ci.org/status.html
官方鏡像地址:http:
//updates.jenkins-ci.org/update-center.json
更換鏡像:【目前鏡像仍是推薦使用官網,比較好用些】
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
|
系統管理--插件管理--高級--升級站點,地址:http://updates.jenkins-ci.org/update-center.json
Jenkin目錄:
1
2
3
4
5
6
7
8
9
10
|
[root@linux-node2 ~]# rpm -ql jenkins
/etc/init.d/jenkins 【啓動文件】
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins 【配置文件】
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/
var
/cache/jenkins 【程序文件,備份就須要備份該目錄下war目錄】
/
var
/lib/jenkins 【主目錄,升級得話直接把war包放到該目錄,升級完成後jenkins會把war自動解壓到/
var
/cache/Jenkins目錄】
/
var
/log/jenkins 【日誌文件】
|
配置文件參數:/etc/sysconfig/jenkins
1
2
3
4
|
JENKINS_USER=「root」
由於Jenkins須要調用系統命令,採用root用戶會比較方便,生產環境建議採用jenkins用戶,多一步受權過程。
JENKINS_JAVA_OPTIONS=「-Djava.awt.headless=
true
」
jenkins是依賴jvm啓動得,若是內存不夠用了,須要指定堆,就須要在這裏作。
|
用戶權限:【不推薦,知道在這裏能夠修改就能夠。生成環境修改配置文件,作修改】
1
2
3
4
5
6
7
8
9
10
|
修改/etc/init.d/jenkins
將用戶修改成root,能夠調用root工具
106行,113行
修改啓動端口85行,$JENKINS_PORT
systemctl daemon-reload
service jenkins restart
|
備份:【若是體積比較大,不建議採用全量備份,可使用rsync來進行增量備份】
1
2
|
tar zcvf jenknis.tar.gz /
var
/lib/jenkins/
天天定時備份的腳本,保留15天的備份
|
/var/lib/jenkins/ 目錄結構:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@linux-node2 jenkins]# ll
總用量 172136
-rw-r--r--. 1 root root 604 10月 29 22:02 com.dabsquared.gitlabjenkins.connection.GitLabConnectionConfig.xml
-rw-r--r--. 1 jenkins jenkins 365 10月 29 02:35 com.dabsquared.gitlabjenkins.GitLabPushTrigger.xml
-rw-r--r--. 1 jenkins jenkins 1592 10月 28 22:26 config.xml
-rw-r--r--. 1 root root 159 10月 29 22:02 hudson.model.UpdateCenter.xml
-rw-r--r--. 1 jenkins jenkins 370 10月 29 02:35 hudson.plugins.git.GitTool.xml
-rw-------. 1 jenkins jenkins 1712 10月 28 22:25 identity.key.enc
-rw-r--r--. 1 jenkins jenkins 6 10月 29 22:02 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r--. 1 jenkins jenkins 6 10月 28 22:54 jenkins.install.UpgradeWizard.state
drwxr-xr-x. 2 jenkins jenkins 4096 10月 28 22:24 jobs 【任務】
drwxr-xr-x. 4 jenkins jenkins 4096 10月 29 02:36 logs 【日誌】
-rw-r--r--. 1 root root 907 10月 29 22:02 nodeMonitors.xml
drwxr-xr-x. 2 jenkins jenkins 4096 10月 28 22:25 nodes 【集羣節點】
drwxr-xr-x. 104 jenkins jenkins 12288 10月 29 03:54 plugins 【插件】
-rw-r--r--. 1 root root 176176562 10月 29 00:50 plugins.tar.gz
-rw-r--r--. 1 jenkins jenkins 129 10月 29 22:00 queue.xml.bak
-rw-r--r--. 1 jenkins jenkins 64 10月 28 22:24 secret.key
-rw-r--r--. 1 jenkins jenkins 0 10月 28 22:24 secret.key.not-so-secret
drwx------. 4 jenkins jenkins 4096 10月 29 02:22 secrets
drwxr-xr-x. 2 jenkins jenkins 4096 10月 29 04:08 updates
drwxr-xr-x. 2 jenkins jenkins 4096 10月 28 22:25 userContent
drwxr-xr-x. 3 jenkins jenkins 4096 10月 28 22:26 users
drwxr-xr-x. 2 jenkins jenkins 4096 10月 29 02:35 workflow-libs
xml文件都是jenkins的安全或者其餘設置,jenkins是沒有數據庫得,都是存在xml文檔中得。
|
系統設置:【系統管理--系統設置】
系統設置幾個注意事項:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
執行者數量 【不建議超過10個,太多得話,服務器可能會坑不住,通常5個就能夠了。】
用法 【若是是從級得話必定要選擇只容許運行綁定到這臺機器的Job,否則會隨機分別,可能會分配到別的機器跑任務,若是主得話就無所謂了。】
生成前等待時間 【建議改爲10秒,能夠有個反悔得餘地。】
SCM簽出重試次數 【建議改爲不重試0,也能夠設置爲1。】
Jenkins Location:
Jenkin URL 【設置域名地址】
系統管理員郵件地址 【設置郵件地址】
Subversion:
Subversion Workspace Version 【改爲相對比較近點得版本】
郵件通知:
根據提示設置便可。
|
先構建兩個任務,分別爲php和java:
a.構建php任務:
b.構建java任務:
jenkins備份操做:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# 對/var/lib/jenkins 進行備份
[root@linux-node2 jenkins]# mkdir -p /data/backup/jenkins
# 拷貝時保留以前得目錄和文件屬性
[root@linux-node2 jenkins]# rsync -raz --delete --progress /
var
/lib/jenkins/ /data/backup/jenkins/
# 不建議使用scp,採用rsync進行增量備份:scp -r /var/lib/jenkins/ /data/backup/jenkins/,scp是支持斷點續傳得。
# 刪除/var/lib/jenkins
[root@linux-node2 jenkins]# rm -rf /
var
/lib/jenkins/
# 重啓jenkin,仍是能啓動,啓動以後,jenkins會生成默認得目錄和配置文件,進入到初始化界面。
[root@linux-node2 jenkins]# /etc/init.d/jenkins restart
Shutting down Jenkins [肯定]
Starting Jenkins [肯定]
[root@linux-node2 jenkins]# cd /
var
/lib/jenkins/
[root@linux-node2 jenkins]# ll
總用量 64
-rw-r--r--. 1 root root 1592 10月 30 02:09 config.xml
-rw-r--r--. 1 root root 159 10月 30 02:09 hudson.model.UpdateCenter.xml
-rw-------. 1 root root 1712 10月 30 02:09 identity.key.enc
-rw-r--r--. 1 root root 94 10月 30 02:09 jenkins.CLI.xml
-rw-r--r--. 1 root root 6 10月 30 02:09 jenkins.install.UpgradeWizard.state
drwxr-xr-x. 2 root root 4096 10月 30 02:08 jobs
drwxr-xr-x. 3 root root 4096 10月 30 02:09 logs
-rw-r--r--. 1 root root 907 10月 30 02:09 nodeMonitors.xml
drwxr-xr-x. 2 root root 4096 10月 30 02:09 nodes
drwxr-xr-x. 2 root root 4096 10月 30 02:08 plugins
-rw-r--r--. 1 root root 129 10月 30 02:08 queue.xml.bak
-rw-r--r--. 1 root root 64 10月 30 02:08 secret.key
-rw-r--r--. 1 root root 0 10月 30 02:08 secret.key.not-so-secret
drwxr-xr-x. 4 root root 4096 10月 30 02:09 secrets
drwxr-xr-x. 2 root root 4096 10月 30 02:11 updates
drwxr-xr-x. 2 root root 4096 10月 30 02:09 userContent
drwxr-xr-x. 3 root root 4096 10月 30 02:09 users
|
jenkins恢復操做:
1
2
3
4
5
6
7
8
|
# 進行恢復
[root@linux-node2 ~]# /etc/init.d/jenkins stop
Shutting down Jenkins [肯定]
[root@linux-node2 ~]# rm -rf /
var
/lib/jenkins/*
[root@linux-node2 ~]# rsync -arz --delete --progress /data/backup/jenkins/ /
var
/lib/jenkins/
[root@linux-node2 jenkins]# /etc/init.d/jenkins start
Starting Jenkins [肯定]
[root@linux-node2 jenkins]#
|
構建自由風格項目
Throttle builds,構建時限
丟棄舊的構建
填寫源碼信息
丟棄舊的構建:
保持構建的天數 【超過必定天數就刪除】
保持構建的最大個數 【超過必定數量就刪除】
建立SSH KYE:
注意deploy key和ssh key的區別:
deploy keys有兩種,一種是表明所有,一種是隻針對某個項目。
注意和項目的deploy key區別:
點擊啓動:
添加Git有兩種方式,一種是ssh,一種是http:
使用ssh方式比較多。
ssh添加方式:
若是是報以上錯誤,是由於ssh須要加known_hosts文件:
使用git 使用http:
添加用戶名和密碼:
構建:
從jenkins上拷貝/root/.ssh/id_rsa.pub,放入被遠程的服務器:
執行shell命令:
添加進任務裏:
查看構建結果
什麼是maven?
安裝maven:
1
2
3
4
5
6
|
wget http:
//mirrors.cnnic.cn/apache/maven/maven3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar zxvf apache-maven-3.3.9-bin.tar.gz
配置環境變量 vim /etc/profile
export PATH=$PATH:/root/apache-maven-3.3.9/bin
測試
mvn -v
|
POM:
以上紅色標記內容,會變成構建後文件的名字。
MAVEN 命令:
1
2
3
4
5
6
7
8
9
10
11
|
1. 建立Maven的普通java項目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
2. 建立Maven的Web項目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 清除後再編譯
mvn clean install
|
配置系統MAVEN:
1
2
3
4
5
6
7
|
系統管理> Global Tool Configuration
新增maven
取消自動安裝
填寫maven實際安裝路徑 /data/server/apache-maven-3.3.9/
|
新建maven項目:
1
2
3
4
5
6
7
8
9
10
|
新建maven項目
指定源碼位置(git或svn)
指定build選項
clean install
clean install -Dmaven.test.skip=
true
指定execute shell
java -jar target/testweb-0.0.1-SNAPSHOT.jar
# 注意
這個命令是跳過單元測試命令:clean install -Dmaven.test.skip=
true
|
配置maven:
1
2
3
|
settings.xml 是maven的主要配置文件
位置 $home/.m2 用戶
meven安裝目錄/conf 全局
|
開始構建maven項目:
配置maven:
自動安裝maven,系統管理--Global Tool Configuration中
手動安裝maven:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# maven安裝命令
[root@localhost src]# tar -xf apache-maven-3.3.9-bin.tar.gz
[root@localhost src]# mv apache-maven-3.3.9 /data/
[root@localhost src]# export PATH=$PATH:/data/apache-maven-3.3.9/bin
[root@localhost src]# mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /data/apache-maven-3.3.9
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name:
"linux"
, version:
"3.10.0-514.el7.x86_64"
, arch:
"amd64"
, family:
"unix"
[root@localhost src]# echo
"export PATH=$PATH:/data/apache-maven-3.3.9/bin"
>> /etc/profile
[root@localhost src]# source /etc/profile
|
開始構建 ,第一次執行會下載各類插件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# 構建時下載的包,會下載到這裏:
[root@localhost ~]# cd .m2/
[root@localhost .m2]# ll
total 0
drwxr-xr-x 13 root root 190 Dec 10 23:00 repository
[root@localhost .m2]# cd repository/
[root@localhost repository]# ll
total 0
drwxr-xr-x 6 root root 70 Dec 10 23:00 asm
drwxr-xr-x 3 root root 38 Dec 10 22:58 backport-util-concurrent
drwxr-xr-x 3 root root 25 Dec 10 22:56 classworlds
drwxr-xr-x 4 root root 31 Dec 10 23:01 com
drwxr-xr-x 3 root root 25 Dec 10 22:57 commons-cli
drwxr-xr-x 3 root root 26 Dec 10 23:00 commons-lang
drwxr-xr-x 3 root root 33 Dec 10 22:58 commons-logging
drwxr-xr-x 3 root root 18 Dec 10 23:00 jdom
drwxr-xr-x 3 root root 19 Dec 10 22:56 junit
drwxr-xr-x 3 root root 19 Dec 10 22:58 log4j
drwxr-xr-x 6 root root 65 Dec 10 22:58 org
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 構建成功,會再/var/lib/jenkins/workspace/java2目錄中生成一個target目錄,裏面有構建完成的文件testweb-0.0.1-SNAPSHOT.jar
[root@localhost java2]# pwd
/
var
/lib/jenkins/workspace/java2
[root@localhost java2]# ll
total 4
-rw-r--r-- 1 root root 1574 Dec 10 22:55 pom.xml
drwxr-xr-x 4 root root 30 Dec 10 22:55 src
drwxr-xr-x 7 root root 184 Dec 10 23:00 target
[root@localhost java2]# cd target/
[root@localhost target]# ll
total 8
drwxr-xr-x 3 root root 17 Dec 10 22:59 classes
drwxr-xr-x 2 root root 28 Dec 10 23:00 maven-archiver
drwxr-xr-x 3 root root 35 Dec 10 22:59 maven-status
-rw-r--r-- 1 root root 2437 Dec 10 23:00 original-testweb-0.0.1-SNAPSHOT.jar
drwxr-xr-x 2 root root 81 Dec 10 23:00 surefire-reports
drwxr-xr-x 3 root root 17 Dec 10 22:59 test-classes
-rw-r--r-- 1 root root 2663 Dec 10 23:00 testweb-0.0.1-SNAPSHOT.jar
# 啓動測試下
[root@localhost target]# java -jar testweb-0.0.1-SNAPSHOT.jar
Hello World! i am guo2
|
注意:若是下載插件錯誤,須要更改鏡像地址:
如下是改爲阿里的鏡像地址,在/data/apache-maven-3.3.9/conf目錄中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[root@localhost conf]# vim settings.xml
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<settings xmlns=
"http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
>
<mirrors>
<mirror>
<id>baijia</id>
<mirrorOf>*</mirrorOf>
<url>http:
//maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>
default
</id>
<repositories>
<repository>
<id>
public
</id>
<url>http:
//maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>
true
</enabled>
</releases>
<snapshots>
<enabled>
true
</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>
default
</activeProfile>
</activeProfiles>
</settings>
|
只演示tag標籤發佈,以java2項目爲例:
共分爲三個標籤:v1.0,v1.2,v1.3
v1.一、v1.2 的tag和以上步驟同樣:
Jenkins上配置:
構建成功:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1.安裝ssh plugin插件:
系統管理>SSH remote hosts 增長主機信息
在項目中選擇execute shell scripts
on
remote host
using
ssh
2.Shell SSH:
製做jenkins主機免密登陸
直接在 execute shell界面執行ssh命令
或在腳本中接調用ssh語句
ssh root@192.168.152.140 「ifconfig」
scp love root@192.168.152.141/love/
3.ansible:
安裝ansible
配置ansible hosts
配置ansible對其它機器的免密權限
執行ansible 命令
|
安裝好Deploy Plugin插件,而後在tomcat的conf目錄配置tomcat-users.xml文件,在<tomcat-users>節點裏添加以下內容: <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="username" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/> 引號裏的username和password能夠隨便替換,用於部署時認證。
操做界面:
選擇Add post-build action,而後選擇Deploy war/ear to a container,以下圖:
部署說明:
建立節點:
操做:
# 點擊系統管理--管理節點--新建節點
鏈接成功:
分配任務到節點:
在任務配置中勾選Restrict where this project can be run
操做:
使用場景:
任務:指定一個maven項目在節點01上構建併成功
Jenkins配置LDAP:
配置說明:
Rootdn 能夠登入jenkins的用戶組 用戶搜索過濾器 uid={0} linux openladp sAMAccountName={0} windows AD ManagerDN LDAP超管
超管受權:
用戶設置:
1
2
3
4
5
6
7
|
超管root
team1用戶
team2用戶
用戶關聯本身團隊相關job,沒法查看或執行其它job
每一個team新建兩個任務
新建兩個用戶
|
按角色受權:
1
2
|
安裝 Role-based Authorization Strategy 插件
Configure Global Security>受權策略>選擇Role-Based Strategy
|
設置全局角色:
1
2
3
|
Jekins>系統管理>Manage and Assign Roles>Manage Roles
建立全局角色member(項目用戶進入後能夠讀取和建立Job)
Overall容許read
|
設置項目角色:
1
2
3
|
新建project roles
注意pattern的匹配模式是xxx.*
這樣team1只能看到team1開頭的job
|
全局受權:
1
2
|
進入Assign Roles
在Global roles中加入team1/team2並受權member
|
項目受權:
1
|
在Projects roles中加入team1/team2並進行相應受權
|
驗證受權:
1
|
注意若是開放新建權限,則team1建立的job名必須符合規則
|
Pipeline是部署流水線
Pipline將整個交付過程代碼化
建立pipeline:
建立pipeline 配置pipeline Hello world node { stage 'Stage 1' echo 'Hello World 1' stage 'Stage 2' echo 'Hello World 2‘ }
語法生成:
在項目界面點擊Pipeline Syntax Build a job Git Node sh Stage 任務:經過pipeline製做一個部署流水線
轉載:https://www.cnblogs.com/luchuangao/p/7748575.html