jenkins(一)jenkins使用教程

jenkins(一)

jenkins使用教程

标签: 运维 jenkins 持续集成

背景描述:

最近在研究jenkins+maven+git/svn搭建持续集成的方案,需要在公司内网部署。真是头都大了,虽然内网已经部署好了gitsvn的服务,但是maven私服和jenkens都要我部署起来。考虑到离线部署无穷无尽的依赖缺失、版本不对应等问题(我曾经被这些问题整疯了),我决定全部使用docker部署。先在外网调整好所有配置,然后打包成镜像直接复制到内网docker运行。

按理说,我应当从安装配置开始写。但是考虑到交付任务,我先写使用教程,这个文档还可以顺便交付。。。

1.配置远程服务器

使用Pipeline实现部署,需要先配置好远程服务器。

1.1windows配置ssh服务

jenkins服务运行在linux环境中,使用ssh协议与远程系统通信,实现传输文件、调用远程服务的操作。windows本身不支持ssh服务,需要额外配置。

(1)安装freeSSHd开启ssh服务

注意:在安装完成之后会询问是否开启服务,此时要选择不开启。因为我们后续还要进行配置,如果你在安装的时候选择了开启服务,配置完成后还需要手动关闭该服务才能重启。

(2)安装完成,打开软件界面:

选择Authentication选项卡,将Public key authentication勾为Allowed

image

(3)将root文件放到上图Public key folder路径下:

详情参阅ssh linux与windows通信

image

(4)选择SFTP选项卡,SFTP home pathscp传输文件的根路径,根据需要自行配置。本文档中选择指定的tomcat/webapps路径下:

该路径需参考:

jenkins(二)Pipeline语法速成

要与脚本中传输的目标地址对应上

image

(5)选择Users选项卡,创建用户:

image

image

image

(6)选择Server status选项卡,确认服务开启:

image

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_namenet stop service_name来开启、关闭服务

2.配置jenkins

image

在这个界面右侧是自己的项目,左侧是菜单栏。

创建一个自动部署流程有许多方式,建议选用Pipeline构建,因为Pipeline语法灵活,方便定制与扩展。

2.1点击创建按钮

image

2.2填写信息

项目名必填,类型选择流水线

image

2.3编辑流水线构建过程

描述选填

下方左侧的项目建议都不要勾选,如果需要点击右侧的问号查看详情,根据需要来选择

image

Pipeline语句必填

image

2.4语法参考

点击下方的Pipeline Syntax可跳转到语法帮助页面:

image

在该页面可辅助生成语句,也可使用左侧的帮助文档:

image

2.5生成获取代码语句

项目构建的过程,首先需要在代码版本管理器中拉取代码。以从svn获取代码为例:

(1)选择代码类型

image

(2)填入svn地址,并添加凭证:

image

(3)添加凭证:

如图所示选择凭证类型和有效范围,并输入svn账号密码

image

(4)选择凭证:

image

(5)生成语句:

image

(6)获取生成语句:

image

git拉取代码只在选择代码类型时不同:

image

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"
					'''
                }
        	}
        }
    }
}

image

2.7点击保存

保存后在首页右侧的列表中可以看到编辑好的待构建项目:

image

3.开始构建

3.1构建过程

(1)选择自己构建项目:

image

(2)点击构建按钮:

image

(3)查看控制台输出:

image

(4)查看构建过程:

image

image

3.2测试

访问你的项目即可

posted @ 2020-04-23 17:31  海森堡不如我侧的准  阅读(596)  评论(0编辑  收藏  举报