文章目錄
Jenkins CI/CD
1. docker方式安裝
Step 1: 前提條件
安裝docker
#!/bin/bash
# docker install util
function installDocker() {
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
echo "--------------------------------------------------------------available docker options:-------------------------------------------------------------------"
yum list docker-ce --showduplicates | sort -r
echo "--------------------------------------------------------------install docker-18 for you-------------------------------------------------------------------"
yum -y install docker-ce-18.03.0.ce-1.el7.centos
}
if [ $(rpm -qa|grep docker-ce-18) ]
then
echo -e "---------------------------${GREEN}docker already installed,no more action${NC} -----------------------------------------"
else
echo -e "----------------------------${RED}prepare install docker${NC}------------------------------------------------------------"
installDocker
fi
禁掉防火牆
systemctl disable firewalld
systemctl stop firewalld
抑制docker配置防火牆鏈。基於2
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
修改https爲http
[root@bogon ~]# find / -name "hudson.model.UpdateCenter.xml"
/var/lib/docker/volumes/jenkins-data/_data/hudson.model.UpdateCenter.xml
[root@bogon ~]# vim /var/lib/docker/volumes/jenkins-data/_data/hudson.model.UpdateCenter.xml
[root@bogon ~]# cat /var/lib/docker/volumes/jenkins-data/_data/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://updates.jenkins.io/update-center.json</url>
</site>
</sites>
Step 2: 安裝鏡像
docker pull jenkinsci/blueocean
docker image pull docker:dind
# 創建網絡
docker network create jenkins
# 創建volume
docker volume create jenkins-docker-certs
docker volume create jenkins-data
運行:
docker container run --name jenkins-docker --rm --detach \
--privileged --network jenkins --network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 docker:dind
docker container run --name jenkins-blueocean --rm --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--publish 8080:8080 --publish 50000:50000 jenkinsci/blueocean
Step 3: 解鎖jenkins
http://localhost:8080
查看:
/var/jenkins_home/secrets/initialAdminPassword
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76f2ae0d054a jenkinsci/blueocean "/sbin/tini -- /usr/…" 8 minutes ago Up 8 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins-blueocean
fe2c69368564 docker:dind "dockerd-entrypoint.…" 8 minutes ago Up 8 minutes 2375/tcp, 0.0.0.0:2376->2376/tcp jenkins-docker
切入到容器裏面
docker exec -it 76f2ae0d054a bash
bash-4.4$ cat /var/jenkins_home/secrets/initialAdminPassword
26bf533175fd443daf000770841470c #這個密碼貼進去
reference list
- https://jenkins.io/doc/book/installing/#setup-wizard
- https://www.cnblogs.com/hailun1987/p/7518306.html
- https://blog.csdn.net/qq_33355821/article/details/87873772
Jenkins自定義docker私有倉庫
網易雲私有倉庫首頁:https://c.163.com/hub#/home
基於custom-registry,使用網易雲docker鏡像來下載maven,如:
pipeline {
agent {
docker {
image 'library/maven:3-alpine'
args '-v /root/.m2:/root/.m2'
registryUrl 'https://hub.c.163.com'
}
}
}
2. war包方式安裝
下載jar包後,使其後臺執行,並將日誌輸出到jenkins.log
:
nohup java -jar jenkins.war > jenkins.log 2>&1 &
3. 構建第一個Maven項目
Step 1. 全局工具配置
打開系統管理->全局系統工具配置:
設置maven settings.xml
設置git,這個path To Git executable
保留默認就可以。
設置maven可執行文件路徑:
Step 2: (安裝)Blue Ocean插件
這個就是個新版的UI界面。最好裝一下,因爲很好看=_=|||。之後裝什麼插件,都在這裏裝。
在可選插件裏搜blue,點擊直接安裝。
Step 3: 編輯pipeline文件
通常你的遠程倉庫裏應該有個Jenkinsfile,我這裏遠程倉庫沒有這個部署描述文件。
我的樣例參考項目在:https://github.com/oneslideicywater/common.git
編輯pipeline文件:
pipeline所謂的聲明式,就是使用的groovy語言的語法。具體內容如下:
pipeline {
agent any
tools {
maven 'maven'
}
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://github.com/oneslideicywater/common.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
post {
// 成功之後輸出個信息
success {
sh 'echo success'
}
}
}
}
}
Step 4: 開始構建
查看日誌: