Jenkins

jenkins

  • jenkins是一款CI工具
  • jenkins基于java:java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
  • 下载:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
[root@localhost ~] wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.222.1-1.1.noarch.rpm
[root@localhost ~] rpm -ihv jenkins-2.222.1-1.1.noarch.rpm 
[root@localhost ~] systemctl start jenkins
[root@localhost ~] systemctl enable jenkins
  • 配置:

http://192.168.113.134:8080 -> 输入解钥密码 -> 选择插件来安装 -> 点击“无”,然后“安装” -> 右下角“使用admin账户继续” -> 保存并完成 -> 开始使用jenkins

  • 修改admin密码。右上角admin -> configure -> password -> save

安装插件

# 在jenkins服务器上修改安装插件所用的服务器
[root@localhost ~] ls /var/lib/jenkins/updates/default.json
[root@localhost ~] 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/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json
[root@localhost ~] systemctl restart jenkins

访问:http://192.168.113.134:8080/ -> Manage Jenkins -> Manage Plugins -> Available选项卡,按ctrl+f进行搜索并勾选Git Parameter / Localization Chinese(Simplified) / Dingtalk / Gitlab -> 点击Install without restart -> 勾选Restart Jenkins when installation is complete and no jobs are running

如果/var/lib/jenkins/updates/default.json不存在,可以 Manage Jenkins -> Manage Plugins -> Advanced选项卡 -> Update site : https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json -> 点击submit提交。

jenkins应用

1)在gitlab上拉取代码
# 在jenkins服务器上安装git
[root@localhost ~] yum install -y git

首页 -> 新建Item -> myweb / Freestyle project -> 确定 -> 源码管理 => git / Repository URL: http://192.168.113.135/devops/myweb.git -> 保存

# 在jenkins服务器上查看代码目录
[root@localhost ~] ls /var/lib/jenkins/workspace
ls: 无法访问/var/lib/jenkins/workspace: 没有那个文件或目录

点击项目页面左边栏的Build Now -> Build History 下面的#1 -> 左边栏的控制台输

# 在jenkins服务器上查看代码目录
[root@localhost ~] ls /var/lib/jenkins/workspace
myweb
2)配置钉钉机器人发送消息

项目构建过程中,可以将整个构建过程通过钉钉机器人发送消息。

首页 -> Manage Jenkins -> Configure System -> 钉钉配置 -> 新增机器人 -> 输>入名字、webhook地址以及关键字 -> 点击测试 -> 成功后保存

钉钉web登陆地址:https://im.dingtalk.com/

3)修改myweb项目

首页 -> 点击项目 - > 左边栏 配置 -> 勾选机器人 -> 保存

构建项目时,构建过程将会通过钉钉机器人发送消息

4)推送代码时自动构建项目

修改jenkins项目配置 -> 构建触发器 -> 勾选Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.113.134:8080/project/myweb -> 点>击 高级 -> 点击generate生成Secret token并复制它 -> 保存

修改gitlab配置 -> 点击项目,如myweb -> 左边栏 设置 / 集成 -> 链接url http://192.168.113.134:8080/project/myweb / 安全令牌填写jenkins中生成的Secret token -> 点击增加web钩子。在页面中间部分找到创建的web钩子,点击test -> Push events测试,返回Hook executed successfully: HTTP 200表示成功。

5)完整过程测试:
# 在jenkins服务器上删除构建目录
[root@localhost ~] rm -rf /var/lib/jenkins/workspace/*
# 程序员推送代码
[root@localhost myprojects] cd myweb/
[root@localhost myweb] echo '<p>tedu nsd1910</p>' >> index.html
[root@localhost myweb] git add .
[root@localhost myweb] git commit -m "modify index.html"
[root@localhost myweb] git push

程序员推送代码到gitlab服务器后,jenkins项目将会自动构建,并通过钉钉机器人发
送构建消息。

[root@localhost ~] ls /var/lib/jenkins/workspace/
myweb
[root@localhost ~] ls /var/lib/jenkins/workspace/myweb/
index.html  issue  login.defs  README.md
[root@localhost ~] cat /var/lib/jenkins/workspace/myweb/index.html

使用参数构建

1)配置jenkins通过tag标签构建

首页 -> 新建Item -> 名字myweb2 / Freestyle project -> 勾选This project is parameterized参数化构建 => 添加参数 => Git Parameter (Git参数) => Name: webver / Parameter Type: Branch or Tag / Default Value / origin/master -> 源码>管理 => Git => Repositories => Repository url: http://192.168.113.135/devops/myweb.git / Branches to build: $webver -> 保存

构建测试

点击 Build with Parameters -> 选择版本 -> 开始构建

修改项目,检出代码到不同的子目录
# 删除jenkins服务器上的代码目录
[root@localhost ~]# rm -rf /var/lib/jenkins/workspace/myweb2/

在jenkins的web页面上点击配置 -> 在源码管理下面找到Addtional Behaviours -> >新增 -> Checkout to a sub-directory: myweb-$webver -> 保存

构建测试:构建两次,每次使用不同版本

点击 Build with Parameters -> 选择版本 -> 开始构建

[root@localhost ~]# ls /var/lib/jenkins/workspace/myweb2/
myweb-1.0  myweb-2.0
)2修改项目,实现代码打包
  1. jenkins服务器通过http协议共享打包后的软件
  2. jenkins服务器发布当前软件版本和前一版本
  3. 计算压缩包的md5值
# 在jenkins服务器上安装httpd
[root@localhost ~] yum install -y httpd
[root@localhost ~] systemctl start httpd
[root@localhost ~] systemctl enable httpd
# /var/www/html/deploy/live_ver:保存当前版本号
# /var/www/html/deploy/last_ver:保存前一版本的版本号
# /var/www/html/deploy/pkgs:保存软件的压缩包和它的md5值
[root@localhost ~] mkdir -p /var/www/html/deploy/pkgs
[root@localhost ~] chown -R jenkins:jenkins /var/www/html/deploy/

myweb2项目 -> 配置 -> 构建 -> 增加构建项目 -> Execute shell

pkgs_dir=/var/www/html/deploy/pkgs
# 将下载目录拷贝到web服务器目录
cp -r myweb-$webver $pkgs_dir
cd $pkgs_dir
rm -rf myweb-$webver/.git  # 删除不必要的版本库文件
# 打包
tar czf myweb-$webver.tar.gz myweb-$webver
rm -rf myweb-$webver  # 删除软件目录
# 计算压缩包的md5值
md5sum myweb-$webver.tar.gz | awk '{print $1}' > myweb-$webver.tar.gz.md5
cd ..
# 将live_ver的版本号写到last_ver中
[ -f live_ver ] && cat live_ver > last_ver
echo -n $webver > live_ver  # 将最新版本号写入live_ver
构建测试

点击 Build with Parameters -> 选择版本 -> 开始构建

访问http://jenkins服务器ip/deploy

部署软件到应用服务器

1)在web服务器上部署代码
  • 下载相应版本的软件包
  • 校验下载的软件包是否损坏
  • 解压软件包
  • 部署软件包到web服务器的文档目录
[root@localhost ~] yum install -y httpd
[root@localhost ~] systemctl start httpd
[root@localhost ~] systemctl enable httpd
[root@localhost ~] mkdir /var/www/{download,deploy}
2)完整测试
# 程序员编写新版本代码
[root@db1 myprojects] cd myweb/
[root@db1 myweb] vim index.html   # 加入以下内容
<img src="http://n.sinaimg.cn/ent/4_img/upload/a57892fc/320/w2048h3072/20200330/a973-irpunah3610847.jpg">
[root@db1 myweb] git add .
[root@db1 myweb] git commit -m "my web 3.0"
[root@db1 myweb] git tag 3.0
[root@db1 myweb] git push
[root@db1 myweb] git push --tags

# 在jenkins上重新构建3.0
# jenkins项目构建完成后,在web服务器上运行部署脚本
[root@localhost ~] python3 deploy.py
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值