持续集成 jenkins
安装java环境及tomcat
下载jenkins war包,放在tomcat的app目录
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
启动tomcat
— 设置为后台运行并修改端口
nohup java -jar jenkins.war --httpPort=8888 >/dev/null 2>&1 &
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
brew install jenkins-lts
dcoker
To use the latest LTS: docker pull jenkins/jenkins:lts
To use the latest weekly: docker pull jenkins/jenkins
docker run -itd --name jenkins -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
volume ls
docker volume inspect jenkins_home
"Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data",
docker volume create my-vol
enkins配置文件备份:
docker cp focused_bhaskara:/var/jenkins_home ./jenkins_home
其中focused_bhaskara为当前运行的jenkins容器名字,通过docker ps查看names即可得到。
docker run \
--name jenkins \
-itd \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which git):/usr/bin/git \
-v /apache-maven-3.5.4:/usr/bin/maven \
-v $JAVA_HOME:/usr/bin/jdk \
jenkinsci/blueocean
or
mkdir /opt/jenkins/jenkins_home
sudo chown -R 1000 /opt/jenkins/jenkins_home
docker run -itd --name my_jenkins -p 800:8080 -v /opt/jenkins/jenkins_home:/var/jenkins_home -v /opt/jenkins/war:/usr/local/tomcat/webapps/ -v /usr/bin/git:/usr/bin/git -v /opt/java/jdk1.8.0_231:/opt/java/jdk1.8.0_231 -v /opt/maven/maven3:/opt/maven/maven3 -v /var/lib/docker:/var/lib/docker tomcat:9.0.30-jdk8
安装插件:SSH /Publish Over SSH /Git Parameter/Maven Integration/Rebuilder/Safe Restart/Generic Webhook Trigger/Gitlab Plugin/Docker Compose Build Step/Docker
配制全局安全属性-配制管理员,
系统管理-添加用户,同上授权
echo $JAVA_HOME
which git
echo $M2_HOME
应用部署服务器配制:内网测试环境可以关闭防火墙
service iptables stop
service iptables status
设置jenkins到K8s master ssh 免密登陆
ssh-keygen -t rsa 生成密钥 ssh-genkey -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10.10.45
插件安装不成功
jenkins->系统管理->管理插件->高级 替换最下方【升级站点】中的URL
将http://updates.jenkins-ci.org/update-center.json
https://updates.jenkins.io/update-center.json
替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
或手动安装,下载Jenkins的插件的地址:https://plugins.jenkins.io/
进入Jenkins,进入系统管理,进入管理插件,进入高级,上传插件文件,开始上传
自动化构建
- 丢弃旧的构建 保持构建的天数2 保持构建的最大个数 2
- 参数化构建过程 name:Branch Parameter Type:Branch or tag Default Value:origin/master
- Repository URL: Credentials:
- 构建触发器
- 设置GitLab的webhook
- jenkins中,在 系统管理 -> 全局安全管理中, 勾选 匿名用户具有可读权限
- 在工程中,点击 构建触发器中选中的Build When a change is pushed右下角的高级选项,有一个Secret token,点击 Generate,会生成一个安全代码,复制到GitLab webhook中的url下面
- Build
- Root POM: pom.xml
- Goals and options:
- Post Steps
- Run regardless of build result
- 执行shell code
ERROR
- valid crumb -> 在安全设置中,不勾选 CSRF
- 找不到docker-compose -> sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 无docker权限 Got permission denied while trying to connect to the Docker daemon socket at unix://var…
sudo gpasswd -a jenkins docker #将用户加入到docker用户组中
sudo newgrp – docker #更新用户组
sudo service jenkins restart #重启Jenkins服务