jenkins(一)jenkins使用教程
jenkins(一)
jenkins使用教程
背景描述:
最近在研究jenkins+maven+git/svn
搭建持续集成的方案,需要在公司内网部署。真是头都大了,虽然内网已经部署好了git
和svn
的服务,但是maven
私服和jenkens
都要我部署起来。考虑到离线部署无穷无尽的依赖缺失、版本不对应等问题(我曾经被这些问题整疯了),我决定全部使用docker部署。先在外网调整好所有配置,然后打包成镜像直接复制到内网docker运行。
按理说,我应当从安装配置开始写。但是考虑到交付任务,我先写使用教程,这个文档还可以顺便交付。。。
1.配置远程服务器
使用Pipeline实现部署,需要先配置好远程服务器。
1.1windows配置ssh服务
jenkins
服务运行在linux
环境中,使用ssh
协议与远程系统通信,实现传输文件、调用远程服务的操作。windows本身不支持ssh
服务,需要额外配置。
(1)安装freeSSHd
开启ssh
服务
注意:在安装完成之后会询问是否开启服务,此时要选择不开启。因为我们后续还要进行配置,如果你在安装的时候选择了开启服务,配置完成后还需要手动关闭该服务才能重启。
(2)安装完成,打开软件界面:
选择Authentication
选项卡,将Public key authentication
勾为Allowed
(3)将root
文件放到上图Public key folder
路径下:
(4)选择SFTP
选项卡,SFTP home path
是scp
传输文件的根路径,根据需要自行配置。本文档中选择指定的tomcat/webapps
路径下:
该路径需参考:
要与脚本中传输的目标地址对应上
(5)选择Users
选项卡,创建用户:
(6)选择Server status
选项卡,确认服务开启:
1.2linux配置SSH免密登录
linux
支持ssh
服务,只需配置免密登录即可:
将root
文件中的公钥追加到/root/.ssh/authorized_keys
:
如果执行 cd ~/.ssh
找不到 .ssh 目录,是因为没有使用 ssh 登录过,使用 ssh 登录一下即可生成 .ssh 目录。
authorized_keys文件没有就自行创建
cat ~/.ssh/root >> ~/.ssh/authorized_keys
1.3远程服务器将tomcat注册服务
jenkins
执行Pipeline
构建,在执行完成后结束构建进程,子进程会跟着关闭。所以使用Pipeline
调用远程脚本会有中断的风险,将远程需调用的服务注册为系统服务是一种解决方式:
(1)windows操作系统:
在tomcat/bin
目录下执行:
service install service_name
使用net start service_name
和net stop service_name
来开启、关闭服务
2.配置jenkins
在这个界面右侧是自己的项目,左侧是菜单栏。
创建一个自动部署流程有许多方式,建议选用Pipeline
构建,因为Pipeline
语法灵活,方便定制与扩展。
2.1点击创建按钮
2.2填写信息
项目名必填,类型选择流水线
2.3编辑流水线构建过程
描述选填
下方左侧的项目建议都不要勾选,如果需要点击右侧的问号查看详情,根据需要来选择
Pipeline语句必填
2.4语法参考
点击下方的Pipeline Syntax可跳转到语法帮助页面:
在该页面可辅助生成语句,也可使用左侧的帮助文档:
2.5生成获取代码语句
项目构建的过程,首先需要在代码版本管理器中拉取代码。以从svn获取代码为例:
(1)选择代码类型
(2)填入svn地址,并添加凭证:
(3)添加凭证:
如图所示选择凭证类型和有效范围,并输入svn账号密码
(4)选择凭证:
(5)生成语句:
(6)获取生成语句:
git拉取代码只在选择代码类型时不同:
2.6编辑Pipeline
在2.4所示的Pipeline语句框中输入以下代码:
详情请参考:
《Pipeline语法说明》
pipeline {
agent any
stages {
stage('pullcode'){
steps{
checkout([$class: 'MercurialSCM', credentialsId: 'd4dc650e-a10e-487a-bad9-d6dbf7ee4f45', source: 'http://39.98.82.231:86/svn/gkg/ws/ws/trunk'])
}
}
stage('Build') {
steps {
sh '''
echo "开始编译打包过程"
mvn clean && mvn package -DskipTests=true
echo "编译打包过程结束"
'''
}
}
stage('Test'){
steps {
sh 'echo "Test stage"'
}
}
stage('Deploy') {
steps {
withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
sh '''
echo "关闭服务"
ssh root@192.168.124.9 "cmd /c net stop jenkins_test"
echo "删除原始文件"
ssh root@192.168.124.9 "cmd /c rd/s/q D:/root/apache-tomcat-8.5.24/webapps"
echo "开始使用scp传输文件"
scp "${WORKSPACE}/target/springboot_v2-2.0.0.RELEASE.jar" root@192.168.124.9:/
echo "开始调用远程tomcat进行重启"
ssh root@192.168.124.9 "cmd /c net start jenkins_test"
'''
}
}
}
}
}
2.7点击保存
保存后在首页右侧的列表中可以看到编辑好的待构建项目:
3.开始构建
3.1构建过程
(1)选择自己构建项目:
(2)点击构建按钮:
(3)查看控制台输出:
(4)查看构建过程:
3.2测试
访问你的项目即可