文章目录
前言
个人的学习使用
提示:以下是本篇文章正文内容,下面案例可供参考
一、jenkinsci/blueocean是什么?
持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
个性化 以适应团队中每个成员不同角色的需求。
在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
二、使用步骤
1.jenkins的搭建
- 拉取镜像
docker pull jenkins/jenkins
- 创建卷,采用外部文件挂载的形式挂卷,也就是对应的文件夹
/var/jenkins_home
赋权
chown -R 1000:1000 jenkins_home/
- 启动jenkins
docker run -d --name myjenkins \
-p 8070:8080 \
-p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/local/java/jdk1.8.0_241:/usr/local/java/jdk1.8.0_241 \
-v /usr/local/maven:/usr/local/maven \
-v /var/jenkins_home:/var/jenkins_home \
--privileged=true \
jenkins/jenkins
- 查看日志
docker logs -f myjenkins
这个是登录的密码。也可以用cat命令查看
cat /var/jenkins_home/secrets/initialAdminPassword
入门
jenkins插件管理
创建用户
实例配置
配置完成后重启jenkins。
2.插件管理
- 配置国内插件源
拉到最下方修改插件源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 下载插件publish over ssh(有些版本不支持,存在安全隐患)
- 下载插件Maven Integration plugin
3.UI设置
- 下载插件simple theme。
主题官网:http://afonsof.com/jenkins-material-theme/
颜色:http://afonsof.com/jenkins-material-theme/dist/material-blue.css - 更新配置
此时保存之后颜色已经发生变化。
- 安装green balls插件 编译成功的图标会从蓝色变成绿色
4.系统设置
配置SSH服务器,方便后续的打包构建上传jar包到远程服务器
5.全局工具配置
- maven配置
注意:配置指定的setting文件的时候,里面镜像源更换为阿里鱼镜像源。并且仓库位置需要授权。可对整个maven目录授权
chown -R 1000:1000 /usr/local/maven
- JDK配置
- mavn配置
5.jenkins时区的设置
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
6.jenkins权限管理
- Role-based Authorization Strategy 用户项目权限控制
- Authorize Project 允许对项目级别进行授权
- 修改授权策略
- 配置角色等
7.jenkins常用插件
插件名称 | 插件说明 |
---|---|
SSH | 使用SSH协议在远程服务器上执行Shell命令 |
Publish Over SSH | 通过SSH将打包好的应用传输到远程服务器 |
Git | 将Git工具与Jenkins集成在一起 |
Git Parameter | Git参数化,自动获取当前Git地址所有分支,并提供下拉选项 |
GitLab | 允许GitLab触发Jenkins构建并在GitLab UI中显示其结果 |
Extended Choice Parameter | 支持多选,读取文件作为值,支持pipeline |
Role-based AuthorizationStrategy | 用户项目权限控制 |
Authorize Project | 允许对项目级别进行授权 |
Maven Integration | Maven环境深度集成 |
Copy Artifact | 从其他项目中拷贝 后一次构建的项目包 |
nodejs | 前端环境打包 |
8.jenkins的任务配置
此处勾选provide Node为vue项目构建
#前端
pwd
npm install
rm -rf ./dist/*
npm run build
#后端
#!/bin/bash
cd /data/service
module=boss-bsmc
moduleVersion=${module}-1.0
appgz=${moduleVersion}-bin.tar.gz
if [[ -e "$appgz" ]]; then
tar zxvf $appgz
else
echo "文件不存在!"
exit 1
fi
sleep 2
cd $moduleVersion/target
target_dir=`pwd`
pid=`ps ax | grep -i ${module} | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'`
cd /data/service/$moduleVersion/target
if [[ -z "$pid" ]] ; then
echo "No ${module} running..."
BUILD_ID=DONTKILLME
exec startup.sh
else
echo "The ${server_name}(${pid}) is running..."
kill ${pid}
sleep 1
BUILD_ID=DONTKILLME
exec startup.sh
fi
vue项目流水线demo
node {
//def mvnHome
stage('checkout') { // for display purposes
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab', url: 'http://10.22.50.121:8899/ers-group/test.git']]])
}
stage('npm打包') {
//使用NodeJS的npm进行打包
nodejs('node'){
sh '''
npm install
rm -rf ./dist/*
npm run build
'''
}
}
stage('test') {
echo 'test...'
}
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。