文章目录
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: 开始构建
查看日志: