企业化自动部署平台搭建03-Jenkins安装

本次自动化部署平台基于jenkins+docker+k8s+gitlab

jenkins安装

Docker安装

docker安装(openssh8.4版本会存在执行shell时候杀死衍生进程,解决方法请参考https://blog.csdn.net/weixin_43159975/article/details/112644477

拉取jenkins镜像

docker pull jenkins/jenkins:latest

jenkins镜像查看

docker images

image-20220301193028654

启动jenkins镜像

docker run -d -p 10240:8080 -p 10241:50000 -v /home/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins  #10240为宿主机访问端口 8080为docker容器端口 -d后台运行 -v挂载目录

image-20220301193053850

这里可能会遇到一个小问题,就是我们启动容器后会发现运行状态一直都是 Exited

image-20220301193155448

解决办法:

chown -R 1000:1000 /home/jenkins_mount

查看docker日志 docker log suntechjenkins  发现是目前权限问题
因为/home/jenkins_mount 目录是root权限

image-20220301193348801

我们修改完重新运行就好了

image-20220301193442309

这时候我们去浏览器输入 ip:10240 就可以访问jenkins了

image-20220301193619696

查看密码:

cat /var/jenkins_home/secrets/initialAdminPassword

image-20220301194038876

jenkins配置

插件安装

输入密码进来之后我们选择默认的安装推荐插件就好(这里需要等待的时间比较长)

image-20220301194119331

image-20220301194146387

创建用户:(创建后第一次重新登录,可能会出现用自己刚创建的账号密码登不上的情况,如果登不上,可以尝试用之前的密码试一下)

image-20220301194905898

实例配置: 可以直接先跳过

image-20220301194937089

jenkins升级和配置

jenkins升级 ,在manage jenkins目录下(在红框位置左右,会有提示升级的,直接升级就好,我已经升级了,不然有些插件安装不上。)

image-20220301195101745

安装Maven插件

插件安装点击Manage Jenkins后再点击Manage Plugins再搜索你需要的插件安装即可

以下几个插件推荐安装:
Docker plugin : 提供docker 构建和发布
docker-build-step
Gitlab Hook Plugin
GitLab Plugin
SSH plugin : 提供通过SSH在远程主机执行命令,用于部署服务
maven plugin: 支持maven

image-20220301195417246

image-20220301195357296

image-20220301195551699

配置Maven

打开Manage Jenkins然后Global Tool configuration往下翻找到Maven
这里版本根据自己项目实际情况选择

image-20220301201108928

配置JDK8

这里应为容器默认为jdk11,其他版本可以直接在jenkins中自动安装(这里需要用到Oracle账号,没有请自行注册)
打开Manage Jenkins然后Global Tool configuration

image-20220301200453113

根据提示 我们在这里输入自己的Oracle账号然后保存

image-20220301200755249

构建项目

image-20220301201720232

image-20220301201759047

这里以java项目为例 所以就选择maven项目

修改项目配置

进入到项目管理里面我们先修改git仓库地址,剩余的其他配置根据自己需求修改

image-20220301213919487

配置触发器

配置自动构建,勾选POLL SCM,配置5分钟检查一次,当发生变化时,会自动启动构建

Build Triggers 构建触发器的配置

【构建触发器中配置,会获取到文章开始提到的URLToken,这两个东西需要记录下来,供gitlab配置webhook使用】

enter description here

配置Build

简单的maven项目,构建使用pom.xml,执行package -DskipTests

image-20220301214531988

配置Post Steps

Post Steps是指构建完成执行的步骤,我们会实现构建docker,发布docker和部署服务

配置docker

点击add post-build step,选择Build/publish docker image:

enter description here

选择cloud为先前配置的docker-cloud,image填写私服发布地址,勾上push image。

enter description here

构建脚本

echo '================开始推送镜像================'
sudo docker login --username=用户名 --password=密码 registry-internal.cn-hangzhou.aliyuncs.com 
sudo docker push registry-internal.cn-hangzhou.aliyuncs.com/xxx/demo-service
echo '================结束推送镜像================'
echo '================开始远程启动================'
ssh buxiaoxia@192.168.100.2 -tt << remotessh            ###首先要ssh上去注意这里的<< remotessh,需要做公钥密钥

####从这里开始都是在远程机器上执行命令
cd /home/buxiaoxia/xiaw
./jenkins.sh registry-internal.cn-hangzhou.aliyuncs.com/xxx/demo-service
sudo docker login --username=用户名 --password=密码 registry-internal.cn-hangzhou.aliyuncs.com 
sudo docker pull registry-internal.cn-hangzhou.aliyuncs.com/xxx/demo-service

sudo docker run -d -m 300m  --name=demo-service-`date +%Y-%m-%d` --restart=always registry-internal.cn-hangzhou.aliyuncs.com/xxx/demo-service
echo "finished!"

#####执行完毕

exit  ###退出远程机器
remotessh  ###结尾哦
echo '================结束远程启动================'

jenkins.sh 脚本内容:

#!/bin/sh
sudo docker stop $(sudo docker ps | grep $1|awk '{print  $1}'|sed 's/%//g')

以上就完成了一个简单的自动化构建

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇