Jenkins 学习笔记

简介: Jenkins 学习笔记

Jenkins笔记

Jenkins:Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

1、Jenkins 下载安装

下载地址:https://www.jenkins.io/zh/download/,下载后是一个war,直接可以通过java -jar 命令运行启动。

后台运行命令:启动后直接就可以进行访问了,然后在/root/.jenkins/secrets/initialAdminPassword目录下查询初始密码。

# --httpPort=8000指定运行端口,后面配置日志输出目录

nohup java -jar jenkins.war --httpPort=8000 >jenkins.log 2>&1 &

2、Linux 配置Maven环境

下载地址:https://maven.apache.org/download.cgi,因为Jenkins构建项目需要Maven环境,下载完成后解压到服务器上。

配置Maven环境:

# 配置当前用户环境变量

vi ~/.bash_profile

 

# 在文件中添加如下命令,记得切换自己文件路径

exportMAVEN_HOME=/home/work/apache-maven-3.6.3

exportPATH=$MAVEN_HOME/bin:$PATH

 

# 立即生效

source ~/.bash_profile

 

# 查看 maven 版本

mvn -v

修改下载镜像:修改maven的settings.xm

<mirror>

    <id>alimaven</id>

    <name>aliyun maven</name>

    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

    <mirrorOf>central</mirrorOf>

</mirror>

3、Jenkins 基本使用

Maven插件安装:用于打包发布Maven构建的项目。

创建一个Maven的item:

配置item:需要在Jenkins服务器上安装git,直接yum install -y git

4、Jenkins之自动部署

当Jenkins打成jar后需要手动去启动jar,这时就需要自动化部署jar到服务器的操作。

4.1、自动部署到其它服务器

每次构建的时候,自动将构建好的jar传输到指定服务器上,然后自动运行命令进行启动服务。

安装publish ssh插件:

添加远程服务器:在系统全局配置里面进行添加,只有下载了publish ssh插件才有。

配置构建后续操作:就是将jar传输到指定服务器上,然后自动运行命令部署jar包。

4.2、publish ssh 超时机制

命令优化:nohup java -jar /root/jars/*.jar  &,这个命令有一点问题,他执行时会卡主,可能导致超时错误。

优化后的命令:nohup java -jar /roor/jars/*.jar  >note.log 2>&1 &

  • nohup:这个命令是当前会话退出后进程依然能够运行。
  • >:覆盖输入
  • >>:追加输入
  • 0:标准输入
  • 1:标准输出
  • 2:标准错误输出
  • 最后一个&:表示进程在后台运行

4.3、Pre  Steps前置操作

前置操作:用于删除的文件并杀死之前启动的项目进程,防止再次启动导致端口号冲突。

编写shell脚本:

# 部署项目前清除脚本

 

# 查询进程号,awk:去参数,{printf $2}:第二个参数,就是进程号

pid=`ps -ef | grep modules-pay-01 | grep 'java -jar' | awk '{printf $2}'`

 

# 判断进行是否在启动,判断进程号是否为空

if [ -z$pid ];

 # 为空

 thenecho"项目未启动"

 # 杀死进程

 else

   kill-9$pid

   # 判断杀死成功

   checkPid=`ps -ef | grep -w $pid | grep 'java -jar'`

   if [ -z$checkPid ];

    # 杀死成功

    then

      echo"项目杀死成功"

    else

      echo"项目杀死失败"

   fi

fi

Pre  Steps之前上传脚本文件并执行文件,来杀死之前的进程

最近发现除了腾讯云和阿里云之外的一种好用的云服务器,那就是三丰云云服务器,它拥有众多的功能,其中一个就是可以免费试用一款云服务器,下面介绍它的使用方式。

官方地址:https://www.sanfengyun.com/

然后进行一个实名认证和微信的绑定就可以申请一个 1c1g的免费服务器。

image-20230307102330457

三丰云是北京太极三丰云计算有限公司旗下网络服务品牌,十八年IDC老兵团队蛰伏三年后投资千万于2018年10月1日创建。公司致力于为大众提供优质的互联网基础服务和物联网服务,包括:域名注册、虚拟主机、云服务器、主机托管租用、CDN网站加速、物联网应用等服务。以帮助客户轻松、 高速、高效的应用互联网/物联网,提高企业竞争能力。,它拥有众多的功能,其中一个就是可以免费试用一款云服务器,下面介绍它的使用方式。

[官方地址:https://www.sanfengyun.com/](


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
jenkins 持续交付 开发工具
jenkins学习笔记之一:流水线基础语法
jenkins学习笔记之一:流水线基础语法
|
4月前
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
4月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具
|
4月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
4月前
|
JSON jenkins 持续交付
jenkins学习笔记之四:jenkins常用pipline DSL方法
jenkins学习笔记之四:jenkins常用pipline DSL方法
|
4月前
|
Kubernetes jenkins 持续交付
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
|
4月前
|
jenkins Java 持续交付
jenkins学习笔记之二:jenkins共享库(ShareLibrary)
jenkins学习笔记之二:jenkins共享库(ShareLibrary)
|
4月前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
4月前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
|
4月前
|
jenkins 持续交付
jenkins学习笔记之十八:nexus制品获取及晋级
jenkins学习笔记之十八:nexus制品获取及晋级