您现在的位置是:首页 >技术交流 >[jenkins自动化2]: linux自动化部署方式之流水线(下篇)网站首页技术交流
[jenkins自动化2]: linux自动化部署方式之流水线(下篇)
简介[jenkins自动化2]: linux自动化部署方式之流水线(下篇)
目录
-> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动
1. 引言:
借用jenkins 实现基础的自动化部署
jenkins安装配置操作: --> [Jenkins自动化] 实现远端linux自动化部署方式(上篇)
2. 进阶操作 流水线
-> 2.1 简介:
单个服务上述的操作操作起来也是很轻松, 但是面对多个服务的一件部署显得力不从心,
有没有既能拉取代码 打包并且上传的方法呢, 答案是肯定的: 流水线
实现了git+maven+ssh一键操作
-> 2.2 最终效果图展示:
-> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动
3. 实现方式
ps: 没有看上篇的, 需要先看上篇: [Jenkins自动化] 实现远端linux自动化部署方式(上篇)
3.1 下载几个插件
1. Extended Choice Parameter Plugin
2. blue ocean
3.2 创建流水线任务
3.3 点击配置
拉到最下面 流水线语法
3.4 根据流水线语法 写一个简单的helloworld
pipeline {
agent any
stages {
stage('pull') {
steps {
echo 'Hello World1'
}
}
stage('Hello2') {
steps {
echo 'Hello World2'
}
}
stage('Hello3') {
steps {
echo 'Hello World3'
}
}
}
}
3.5 执行该语法 打开blueOcean查看效果
4. 实战操作 一键git+maven+ssh
4.1 直接上流水线语法吧 带复选框的
pipeline {
agent any
// environment {
// VERSION = "${TIME}"
// PATH = "C:/Program Files/Java/jdk1.8.0_201/bin:D:/software/jenkins/pzy/Jenkins/.jenkins/tools/hudson.tasks.Maven_MavenInstallation/apache-maven-3.8.2/bin:$PATH"
// }
parameters {
extendedChoice (name: 'project_names', type: 'PT_CHECKBOX', description: '请勾选所要发布的项目模块', quoteValue: false, saveJSONParameterToFile: false,
value: '服务A,服务B,服务C',
descriptionPropertyValue: '服务A,服务B,服务C',
visibleItemCount: 11, multiSelectDelimiter: ',', defaultValue: '服务A');
choice(
description: 'Which git branch do you prefer to choose?',
name: 'gitbranch',
choices: ['develop',"test",'master']
);
booleanParam(
name: 'skip_buid',
defaultValue: false,
description: '是否跳过构建?'
)
}
stages {
stage('PULL') {
steps {
echo "git pull--------${gitbranch}"
git branch: "${gitbranch}",
credentialsId: '7910292c-1a80-4d56-9e3b-147a97ce3ed8',
url: 'Git地址 '
echo 'git pull success--------'
}
}
stage('BUILD') {
steps {
echo "${skip_buid}"
script {
echo "${skip_buid}"
if (!skip_buid.toBoolean()) {
echo 'build --------'
bat """
D:/software/maven/apache-maven-3.6.3/bin/mvn clean install -Dmaven.test.skip=true
"""
echo 'build success--------'
}
}
}
}
stage('SSH'){
steps {
script{
for (projectname in project_names.tokenize(',')) {
echo "ssh --------${projectname + '.jar'}"
echo "/bin/sh /opt/app/startup.sh /opt/app/${projectname+'.jar'}"
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'pzy',
transfers: [
sshTransfer(
cleanRemote: false,
excludes: '',
execCommand: "/bin/sh /opt/app/shutdown.sh ${projectname+'.jar'}; /bin/sh /opt/app/startup.sh /opt/app/${projectname+'.jar'}",
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '/opt/app/',
remoteDirectorySDF: false,
removePrefix: "${projectname}\target\",
sourceFiles: "${projectname}\target\${projectname+'.jar'}",
usePty: true)],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)])
echo 'ssh sucess --------'
}
}
}
}
}
}
4.2 修改位置
git路径, maven位置 服务器上传路径 ssh的账号密码
---> 4.2.1 ssh不知道如何更换??
流水线语法- ssh搜索->ssh创建框 里面就可以操作了
4.3 最终执行的选择框效果
4.4 开始构建 执行操作 效果图
5. 报错解决
-> 5.1 maven提示没有jdk
---> 5.1.1 查看全局配置中的maven位置
---> 5.1.2 查看java_home
set java_home
如果不存在 配置一下即可
ps: 最最重要的是 重启jenkins服务, 不是网页
[jenkins的windows版 常规自动化操作 结束]
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。