简介:
jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,旨在提供一个开放易用的软件平台,使软件持续集成
只要master上有新的代码(推送或者合并),自动触发脚本(ansible或者shell)实现自动代码上线
推荐使用内存2G,使用硬盘20G
安装:
安装:
官网:jenkins.io
按照官网来
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.204.2-1.1.noarch.rpm
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins java-1.8.0-openjdk-devel
sudo systemctl daemon-reload
使用自己的rpm包安装
下载:jenkins-2.93-1.1.noarch.rpm
yum -y install java-1.8.0-openjdk
rpm -ivh jenkins-2.93-1.1.noarch.rpm
目录:
/var/lib/jenkins:插件存放目录,默认的JENKINS_HOME
/usr/lib/jenkins:jenkin安装目录,war包位置
/var/lib/jenkins/users/:用户配置文件
/etc/sysconfig/jenkins:配置文件(端口,JENKINS_HOME)
/var/log/jenkins/jenkins.log:jenkins日志文件
开启
修改端口号和用户
vim /etc/sysconfig/jenkins
可选(如果放在同一台机器):
systemctl start jenkins
开启jenkins
systemctl start jenkins
netstat -anput | grep :8080
systemctl start jenkins
web界面:
按照提示查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
登录:密码上同
登录取消密码(不建议,会影响后面实验):
vim /var/lib/jenkins/config.xml
把这一段删除
重启jenkins
重新点击首页-系统管理-管理用户
点击进入展示“用户列表”
点击 admin-设置
修改密码并保存
安装相关插件
手动下载插件放到/var/lib/jenkins/plugins下,或者是在web界面选择系统管理-管理插件-高级-上传插件,然后重启jenkins
手动方式:
cd /var/lib/jenkins
拉取包:plugins.tar.gz
rm -rf plugins
tar -xvf plugins.tar.gz
systemctl restart jenkins
web方式:
修改admin密码
创建任务
继续增加指令
Jenkins实现脚本上传代码
思路:将代码下载到gitlab目录中,然后实现代码上线
下载项目
码云是中国的github:https://gitee.com/
https://gitee.com/kangjie1209/monitor
开启一台虚拟机(12)安装nginx
10端开启一个项目目录并进行git初始化
mkdir project
cd project/
git init
将代码推送到project目录下
gitlab创建一个新的项目
刷新页面,上传成功
回到jenkinsweb界面
将git的URL复制到jenkins目录上
会有报错
在git版本库中添加密钥,jenkins中添加凭据
成功拉取到/var/lib/jenkins/workspace/freestyle-job
到jenkins服务器查看
jenkins手动将代码发布到服务器
可以通过执行命令或脚本的方式进行代码发布,可以使用root在各个web服务器发布代码,也可以创建普通用户发布。
先让jenkins服务器将公钥发送给web服务器
ssh-copy-id 192.168.1.12
赋予jenkins用户权限(因为之前在配置文件中已经修改过,所以此项可以不做)
visudo
jenkins服务器编写脚本
mkdir /scripts
vim /scripts/deploy.sh
#!/bin/bash
CODE_DIR=/var/lib/jenkins/workspace/freestyle-job
WEB_DIR=/var/www/
TIME=`date +%F-%H-%M-%S`
IP=192.168.1.12
cd $CODE_DIR && tar -zcf /tmp/web-${TIME}.tar.gz ./*
scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIR
ssh root@$IP "cd $WEB_DIR && mkdir web-$TIME"
ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-$TIME && rm -rf web-${TIME}.tar.gz"
ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-${TIME} html"
实现将拉取的项目自动打包发送到网页根目录下,并创建连接文件,删除本地tar包等操作
sh deploy.sh
访问12端实现一键代码上传
将脚本传送到jenkinsweb界面
在原有的项目上增加脚本:
模拟开发修改代码并推送代码
在git服务器端把移动能效管理平台改了(模拟开发修改内容)
mkdir data && cd data
git init
git clone git@192.168.1.10:test/kangjie_monitor.git
cd kangjie_monitor/
vim index.html
开发拉取项目进行修改
git add .
git commit -m "change index.html"
git push -u origin master
jenkins点击立即构建,再去12web界面查看
jenkins自动将代码发送到服务器(gitlab master 分支只要上传,直接代码上线)
jenkins版本过低导致插件无法下载,升级jenkins版本
vim /var/lib/jenkins/config.xml
也可以通过手动下载jenkins war包实现升级
备份cd /usr/lib/jenkins/
mv jenkins.war jenkins.war.bak
下载最新jenkins war包:wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.125/jenkins.war
重启jenkins
实现自动构建时需要下载3个插件,但是因为版本过低导致插件无法下载,此时需要更新jenkins版本在管理选项中即可升级或者使用手动方式升级war包
ps aux | grep jenkins
cd /usr/lib/jenkins
mv jenkins.war /root/jenkins.war
service jenkins stop
wget https://updates.jenkins-ci.org/download/war/2.138/jenkins.war
service jenkins start
安装Gitlab Hook插件
1、修改 jenkins 数据目录中的hudson.model.UpdateCenter.xml值为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2、修改updates文件夹中的 default.json文件
替换文件中所有 http://updates.jenkins-ci.org/download 为 https://mirrors.tuna.tsinghua.edu.cn/jenkins
http://www.google.com 修改为
http://www.baidu.com
3、在浏览器中,http:localhost:8080/reload,这样可以重新载入配置。
或者使用http:localhost:8080/restart,重启一下Jenkins ,选择安装推荐插件, 秒速安装成功,简直超速!!
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
sed -i 's#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' /var/lib/jenkins/updates/default.json
sed -i 's#http://www.google.com#http://www.baidu.com#g' /var/lib/jenkins/updates/default.json
插件网站
http://updates.jenkins-ci.org/download/plugins
可选插件中安装Build Authorization Token Root插件
新版:Parameterized Remote Trigger
JIRA Trigger、Gitlab Plugin插件一定要下载
配置身份验证令牌生成随机密码(不使用了)
openssl rand -hex 12
114ab36466d57372d4a21441
-hex:输出结果为16进制数据;数字12是指定生成的随机字符为12字节。总结:22位16位进制数
配置触发器
开启高级配置:
gitlab配置jenkins的url连接和token
新版:注意一下
测试一下
模拟开发修改内容直接上传到web服务器
cd /root/data/kangjie_monitor/
vim index.html
git commit -am "modified index.html"
git push -u origin master
实现jenkins将执行结果反馈给gitlab
先去gitlab生成token
编辑jenkins实现认证
编辑jenkins的具体项目生成通知
查看是否返回
gitlab检测出现对勾则完成
点击对号
成功输出jenkins的执行结果
发布者:LJH,转发请注明出处:https://www.ljh.cool/36885.html