文章目录
安装jeninks
- Jenkins的安装三种方式 docker kubernetes rpm
- 这里安装docker的方式进行安装Jenkins,但是docker现在访问的时候镜像加速器一定要选好不然无法下载镜像,(Jenkins是基于Java语言开发的)
1、 拉去镜像
docker pull jenkins/jenkins:2.470-jdk17
创建目录
mkdir -p /data/jenkins/jenkins_home
chmod 777 -R /data/jenkins/jenkins_home
2、使用docker命令启动Jenkins
docker run -itd --name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/
Shanghai'" \
--privileged=true \
-v /data/jenkins/jenkins_home:/var/jenkins_home jenkins/jenkins:2.470-jdk17
#注意这里挂载目录的 /var/jenkins是docker启动的目录 rpm为 /var/lib/jenkins
3、使用docker logs -f jenkins 看到 jenkins 激活秘钥
7bdf6df02d1e46f5af3bb8ce512f70b9
选择自定义插件,然后全部不勾选到最后选择最后两条进行勾选中文社区,因为安装太多跟你网络有关系,如果网不好的情况下安装会十分缓慢这里建议 不安装那么多
是否要更改jenkins镜像源
创建jenkins agent端
这里是固定节点,动态类似于kubernetes的pod随时删除和创建
在本机服务器上安装 agent 端
[root@Centos7 ~]# cd /data/jenkins/
[root@Centos7 jenkins]# ls
jenkins_home
[root@Centos7 jenkins]# mkdir jenkins_agent
[root@Centos7 jenkins]# pwd
/data/jenkins
echo d95d4e99a4852f6b7824c4c84545d06edf42c6eacd417c958ab587e5f68efc38 > secret-file
curl -sO http://10.0.0.5:8080/jnlpJars/agent.jar
java -jar agent.jar -url http://10.0.0.5:8080/ -secret @secret-file -name build01 -workDir "/opt/jenkins"
启动Jenkins-agent 端
注意这里的agent启动是在前台进行启动的所以我们需要调入到后台去运行,编写一个脚本进行运行
#!/bim/bash
nohup java -jar agent.jar -url http://10.0.0.5:8080/ -secret @secret-file -name build01 -workDir "/opt/jenkins" &
jenkins数据目录
- jenkins采用本地文件的数据存储方式
- jenkins的所有数据都得存储在JENKINS_HOME变量定义的数据目录下;
- 默认JENKINS_HOME的值是/var/lib/jenkins
jenkins项目类型-Pipeline
- 参数化构建:为流水线参
- String字符参数
- Choice选项参数
- 历史构建管理
- 丢弃历史:保留5天内10个构建
- 并行构建控制
jenkins项目构建方式
- 定时构建
- API触发构建
- 与其他系统联动
- Gitlab提交代码后通过webhook触发构建(主动)
- Jenkins轮询Gitlab检测到代码变更触发构建(被动)
创建第一个Pipeline流水线
安装流水线工具
创建第一个流水线作业
注意这里写的参数化构建,选项参数和字符参数,需要手动进行运行这个流水线,也可以使用命令行的方式去运行,运行这个构建的项目可以参考上一级的目录有几种方式进行构建
构建流水线使用服务器进行传参
这里使用两种方式可以可以的
#直接触发
curl -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/build?token=devops&VERSION=3.3.3"
#传递参数
curl -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"
JENKINS_URL/job/demo-pipeline/build?token=TOKEN_NAME
JENKINS_URL/job/demo-pipeline/buildWithParameters?token=TOKEN_NAME
http://10.0.0.5:8080/job/demo-pipeline/build?token=devops
curl -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"
curl -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"
jenkins项目归类
- view视图
- floder文件夹
- 根据团队、业务类型等方式进行分类
视图应用
视图主要应用于类似于相同的业务在同一个视图里面,更好去区分(类似于北京的业务,上海的业务)
创建有关相关项目的视图
创建完视图之后,就会出现有关于demo01所有的流水线
注意流水线的位置会发生变化,所有中有关的流水线是一个位置,在视图中又是一个位置
floder文件夹
jenkins用户管理
-
用户来源
-
本地存储数据库
-
其他认证系统[gitlab/ldap/github]
-
用户操作
- 增删改查禁用
-
Jenkins授权管理-RBAC
- 插件:Role-Based Strategy
- Role类型
- Global roles 全局角色
- Iterm roles 定义一类项目
- Role授权
需要安装插件Role
这里会多出来一个 Manage and Assign Roles
jenkins凭据管理
- 用途:存储构建需要与其他系统认证所使用的账户或者密码信息。
- 类型
- ssh-key
- secret-text
- secret-file
- usernme/password
凭据主要是解决明文密码的,在Jenkins中如果想要调用凭据可以根据它的Id去调用
Jenkins备份管理
- 备份方式
- 编写备份脚本,通过Crontab脚本备份;
- 通过jenkins插件进行定时备份
- 备份排除范围
- workspace目录
- 备份触发时间
- 每天凌晨1-2点,保留最近3、5天的备份
通过插件进行备份,如ThinBackup
注意新版本的ThinBackup
在容器内部就可以看到,是否备份成功
因为我们设置的是容器映射
jenkins版本升级
- 不要跨太高的版本
- 数据目录要使用同一个
- 升级前进行数据目录备份
- rpm部署: rpm -uvh
- Docker部署:替换新版本镜像
BlueOcean
- Jenkins可视化页面
- 美观 简洁
Pipeline简介
- Pipeline是jenkins2.0版本推出的核心功能
- Pipeline可以实现以代码的方式定义工作流程
- 商业价值
- 组织级别及团队间工作流复用
- 便于Pipeline开发与维护
- 减少人工WEB页面操作
Pipeline的组成
- Jenkinsfile: 概述Pipeline的代码文件
- Agent:Pipeline的运行节点
- Stage:Pipeline的阶段