网站移动转换,网上工作平台,杭州网站关键词,建设网站比较好的公司排名1. Jenkins 介绍
软件开发生命周期(SLDC, Software Development Life Cycle)#xff1a;它集合了计划、开发、测试、部署的集合。 软件开发瀑布模型 软件的敏捷开发 1.1 持续集成
持续集成 (Continuous integration 简称 CI): 指的是频繁的将代码集成到主干。
持续集成的流…1. Jenkins 介绍
软件开发生命周期(SLDC, Software Development Life Cycle)它集合了计划、开发、测试、部署的集合。 软件开发瀑布模型 软件的敏捷开发 1.1 持续集成
持续集成 (Continuous integration 简称 CI): 指的是频繁的将代码集成到主干。
持续集成的流程: 提交、测试、构建、测试、部署、回滚 1.2 Jenkins 介绍
Jenkins 是一款流行的开源持续集成 (Continuous Integration) 工具广泛用于项目开发具有自动化构建、测试、部署等功能。
Jenkins 特点
开源的 Java 语言开发持续集成工具支持持续集成、持续部署。易于安装部署消息通知、测试报告分布式构建文件识别丰富的插件支持
2. 持续集成环境安装
服务器规划
名称IP地址安装软件代码托管服务器192.168.3.57Gitlab持续集成服务器192.168.3.58Jenkins、jdk、maven、Git应用测试服务器192.168.3.0jdk
2.1 Gitlab 安装
Gitlab 是一个用于仓库管理系统的开源项目使用 Git 作为代码管理工具并在此基础上搭建起来的 web 服务。
# 1. 安装依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
# 2. 启动 ssh 服务并设置开机启动。
systemctl start sshd systemctl enable sshd
# 3. 启动 postfix 服务并设置开机启动
systemctl start postfix systemctl enable postfix
# 4. 开放 ssh、http 服务并重新加载防火墙
firewall-cmd --add-servicessh --permanent
firewall-cmd --add-servicehttp --permanent
firewall-cmd --reload
# 5. 添加 Gitlab 镜像仓库并安装
tee /etc/yum.repos.d/gitlab-ce.repo -EOF
[gitlab-ce]
nameGitlab CE Repository
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck0
enabled1
EOF
# 安装 gitlab
yum makecache
# yum list gitlab-ce --showduplicates
yum install gitlab-ce
# yum install --setoptobsoletes0 gitlab-ce-16.0.0-ce.0.el7 -y
# 6. 修改 gitlab 配置
vim /etc/gitlab/gitlab.rb
# external_url http://192.168.3.57:30001
# nginx[listen_port] 30001
# 7. 重载配置启动 gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
# 8. 开放端口
firewall-cmd --zonepublic --add-port30001/tcp --permanent
firewall-cmd --reload
# 启动成功后修改管理员 root 密码就可以登录了。
# 查看默认密码,默认密码保存 24 小时 cat /etc/gitlab/initial_root_password
# 访问 http://192.168.3.57:300012.2 Jenkins 安装
# 1. 安装 jdk
yum -y remove java-*
# 请选择合适的jdk 版本 https://pkg.jenkins.io/redhat-stable/
rpm -ivh jdk-17_linux-x64_bin.rpm
tee /etc/profile.d/java.sh -EOF
JAVA_HOME/usr/java/jdk-17/
CLASSPATH%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
EOF
source /etc/profile.d/java.sh
# 2. 测试 jdk 是否安装成功
java -version
# 3. 获取 Jenkins 安装包
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install fontconfig -y
# yum list jenkins --showduplicates
yum install jenkins -y
# 最新的支持 jdk 8 的 Jenkins 版本 2.346
# yum install --setoptobsoletes0 jenkins-2.346.3-1.1 -y
# 4. 指定 root 用户运行 Jenkins后面持续部署需要用到 root 权限去执行脚本
vim /usr/lib/systemd/system/jenkins.service
#Userroot
#Grouproot
# 5. 启动 Jenkins
systemctl daemon-reload
systemctl start jenkins
# 6. 开放端口
firewall-cmd --zonepublic --add-port8080/tcp --permanent
firewall-cmd --reload
# 启动成功后修改管理员 root 密码就可以登录了。
# 查看默认密码, cat /var/lib/jenkins/secrets/initialAdminPassword
# 访问 192.168.3.58:80802.3 Jenkins 插件安装
# jenkins 菜单切换到 Manage Jenkins Plugins Available plugins
cd /var/lib/jenkins/updates/
sed -i s#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g default.json sudo sed -i s#www.google.com#www.baidu.com#g default.json
# jenkins 菜单切换到 Manage Jenkins Plugins Advanced settings
# https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 替换 https://updates.jenkins.io/update-center.json
# 提交保存
# 重启 Jenkins浏览器访问 http://192.168.3.58:8080/restart# 重启好之后安装插件 Localization: Chinese (Simplified)、git、Credentials Binding Plugin、Role-based Authorization Strategy
# 配置 jdk、maven
# 配置 Jebnkins 系统环境变量 JAVA_HOME、M2_HOME、PATHEXTRA
# PATHEXTRA 的值配 $M2_HOME/bin3. Jenkins 构建 maven 项目
Jenkins 自动构建项目的类型
自由风格软件项目 (freeStyle Project)maven 项目 (Maven Project)流水线项目 (Pipeline Project) (推荐使用这种自由灵活)
安装插件 Deploy to container 用于部署 war/ear 包 安装插件 maven integration 用于 maven 项目的构建
3.1 Pipeline 流水线项目构建
Pipeline 简单来说就是一套运行在 jenkins 上的工作流框架将原来独立运行于单个或者多个节点的任务连接起来实现单个任务难以完成的复杂流程编排和可视化的工作。
安装插件 Pipeline、Pipeline: Stage View、 用于构建 Pipeline 流水线项目
如何创建 Jenkins Pipeline 呢
Pipeline 脚本是由 Groovy 语言实现的Pipeline 支持两种语法Declarative(声明式的) 和 Script Pipeline (脚本式语法)Pipeline 有两种创建方法可以直接在 jenkins 的 web ui 种创建脚本也可以创建一个 Jenkinsfile 脚本放入源码中
可以利用 Jenkins 片段生成器生成脚本 http://192.168.3.58:8080/job/spring-cloud-alibaba-study-pipeline/pipeline-syntax/
Jenkinsfile 示例
pipeline {agent anystages {stage(pull) {steps {checkout scmGit(branches: [[name: */main]], extensions: [], userRemoteConfigs: [[credentialsId: gitlab-auth-ssh, url: git192.168.3.57:springcloud/spring-cloud-alibaba-study.git]])}}stage(build) {steps {sh mvn clean package}}stage(deploy) {steps {echo deploy code}}}
}
常用内置构建触发器
触发远程构建其他工程构建后触发(Build after other projects are build)定时构建(build periodically)轮询SCM (Poll SCM)
git hook 自动触发构建需要安装两个插件 Gitlab hook、Gitlab(新版本只需要安装Gitlab插件)
安装插件 Email Extension、Email Extension Template 用于发送构建结果
4. 附录
4.1 生成公钥和私钥
使用 ssh-keygen 生成公钥和私钥,用于免密操作。
# 生成 公钥和私钥公钥配置在 gitlab, 私钥配置在 jenkins
ssh-keygen -t rsa4.2 maven 安装
# maven 安装
wget -c https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip
# 配置 maven 环境变量
tee /etc/profile.d/maven.sh -EOF
export MAVEN_HOME/usr/maven/apache-maven-3.9.6
export PATH$PATH:$MAVEN_HOME/bin
EOF
# 刷新环境变量使之生效
source /etc/profile.d/maven.sh
# 改 maven 的本地仓库位置、加速镜像源
vim /usr/maven/apache-maven-3.9.6/conf/settings.xml
#localRepository/root/data/mvnRepo/localRepository
#mirror
# idnexus-aliyun/id
# mirrorOfcentral/mirrorOf
# nameNexus aliyun/name
# urlhttp://maven.aliyun.com/nexus/content/groups/public/url
#/mirror参考文献
Gitlab官网 Jenkins官网 groovy教程 SonarQube官网 maven官网 openJDK官网 Oracle JDK官网