一.什么是jenkins
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
二.安装jenkins
该文档是假设已经安装完成jdk环境的情况下编写的,假如你 java -version 找不到java命令或版本低于11请先安装Java JDK版本
1.创建目录
mkdir -p /opt/jenkins
2.下载jenkins
前往官网下载war包,到/opt/Jenkins目录 www.jenkins.io/zh/doc/pipe…
3.启动jenkins
cd /opt/Jenkins
nohup java -jar jenkins.war --httpPort=8080 2>&1 &
4.访问Jenkins 并完成引导
三.配置jenkins
1.依赖项目
2.CI&CD流程
3.面板介绍
4.插件介绍
jenkins提供了非常多的插件来满足用户的需求,我们可以通过以下路径来管理插件
首页-》Manage Jenkins-》Manage Plugins
这里可以搜索我们想要的插件,安装/删除或者更新它
五.pipeline脚本/模板
pipeline {
agent any
parameters {
text defaultValue: 'default', description: '''代码分支''', name: 'branch'
}
tools {
maven "maven3"
}
stages {
stage('拉取代码') {
steps {
script {
try {
checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '5778223d-ae2e-4399-916e-bb342eeb1079', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'http://svn.51diaocha.cn/51diaocha.v1.5/trunk/51diaocha.v1@HEAD']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
echo '拉取代码成功'
} catch (Exception ex) {
echo '拉取代码失败'
}
}
}
}
stage('构建项目工程') {
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
echo '构建项目完成'
}
}
stage('发送项目') {
steps {
sh """
scp -r ./wydc.site/*/target/war/*.war root@192.168.110.50:/data/51diaochaCode/service
scp -r ./*serviceImpl/*/target/jar/*.jar root@192.168.110.50:/data/51diaochaCode/serviceImpl
"""
echo 'publish project'
}
}
stage('启动项目工程') {
steps {
echo '全部启动成功'
}
}
}
}
1.参数使用
text defaultValue: 'default', description: '''代码分支''', name: 'branch'
此处我们在jenkins job中设置了一个参数名称叫做 branch ,这个参数内容可以在webui中填写,而在pipeline脚本中想获取到它的参数, 我们可以使用${branch}
插件使用
2.引入插件/使用
tools {
maven "maven3"
}
stage('构建项目工程') {
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
echo '构建项目完成'
}
}
六.其他
1.如何关闭防火墙:
#centos8
#开放指定端口
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
firewall-cmd --zone=public --add-port=xxxx/udp --permanent
#重启防火墙服务
systemctl restart firewalld.service
2.如何配置免密登录
#假如我们有3个服务器 linux1 linux2 linux3
#假设我们将jenkins安装在 linux1上,需要配置免密登录请通过如下设置
ssh-keygen -t rsa
cd /root/.ssh/
cp id_rsa.pub authorized_keys
chmod 600 authorized_keys
#当本机配置完成后,我们前往目标服务器配置 【在linux2重复以上步骤】
vim authorized_keys
#将【linux1】的【id_rsa.pub】 添加在authorized_keys开头或结尾
#在linux1上测试一下
ssh xxx@linux2
#如果没有让其输入密码则测试成功
3.如何查询进程/关闭
kill `ps -ef | grep -E 'tomcat.*account' | grep -v grep | awk '{print $2}'`
三.引用
jenkins官方文档:www.jenkins.io/zh/doc/
四.遇上的问题
java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null
blog.csdn.net/sushiyi651/…