[Jenkins自动化] 实现远端linux自动化部署方式(上篇)

目录

本篇文章简介: 简单易上手, 轻松实现jenkins实现自动化部署(上)

1. 安装jenkins方式

-> 1.1 windows版本

--->1.1.1  直接安装 修改安装路径 设置端口号 9000为例

---> 1.1.2 创建工作空间即可 (起名为pzy)

-> 1.2 linux版本(暂无)

-> 1.3 docker版本(暂无)

2. 将项目构建成jar包(基础方法)

-> 2.1 基础配置

---> 2.1.1 修改 jenkins.xml文件(示例如下, 就是你jenkins的安装路径

---> 2.1.2 保存后重启jenkins服务 

---> 2.1.3 打开 localhost:9000 

---> 2.1.4 安装插件  直接安装推荐插件

---> 2.1.5 创建一个管理员账号 用于登录

->2.2 系统配置操作

---> 2.2.1 (安装插件) maven 搜 Maven Integration

---> 2.2.2 安装 Publish Over SSH

---> 2.2.3 安装插件Gitee

-> 2.3 配置maven 

--->2.3.1 操作方式:  首页-> 系统管理 -> 全局配置 找到maven安装

 -> 2.4 配置jdk 位置上同 

---> 2.4.1找不到jdk安装位置???

 ->2.4.2 如图所示 进行配置

 ---> 2.4.3 应用并保存, 返回首页

->2.5 新建item任务

---> 2.5.1 选择自由风格 起名

 ---> 2.5.2 配置git (基本操作 账号 密码 仓库地址)

 ---> 2.5.3 向下拉 修改分支

 ---> 2.5.4 点击触发器 点击构建 调用顶层maven目标

 --->2.5.5 保存

-> 2.6 点击构建 

---> 2.6.1 点击pzy-test 执行拉取代码

---> 2.6.2 效果图如下 : 

3.  在服务器中添加启动和关闭脚本 

-> 3.1创建并执行jar包 尝试关闭./shutdown.sh

-> 3.2 创建并执行jar包 尝试启动 ./startup.sh

 ->3.3  权限不够 命令来凑

4. 系统ssh配置方式

-> 4.1 管理jenkins点击 找到选框位置

​编辑 -> 4.2 安装插件ssh  搜索Publish Over SSH

 -> 4.3 修改系统配置 如图

 -> 4.4 拉到下面 找到ssh servers  填写服务器基本信息

 -> 4.5 保存返回

5. 配置新的item任务

 -> 5.1 选择自由风格

 -> 5.2 返回首页, 点击 红框位置

 -> 5.3 点击配置 如图

 -> 5.4 点击高级 选择并填写自定义工作空间

 -> 5.5 点击构建后操作

-> 5.6 核心 填写基本信息 如图所示 

 ->5.7  点击运行 build now, 查看控制台输出日志  正确如图

 -> 5.8 查看服务器是否部署成功

 (待续未完) 下篇更精彩


本篇文章简介: 简单易上手, 轻松实现jenkins实现自动化部署(上)

 实现了jenkins基础安装配置, gitee拉取 , 推送服务器 杀死进程 启动进程的自动化操作

 特邀 hyn 提供技术支持

1. 安装jenkins方式

-> 1.1 windows版本

--->1.1.1  直接安装 修改安装路径 设置端口号 9000为例

---> 1.1.2 创建工作空间即可 (起名为pzy)

-> 1.2 linux版本(暂无)

-> 1.3 docker版本(暂无)

2. 将项目构建成jar包(基础方法)

-> 2.1 基础配置

---> 2.1.1 修改 jenkins.xml文件(示例如下, 就是你jenkins的安装路径

我这里是 D:\software\jenkins\pzy\Jenkins 不然默认是c盘

<!--
The MIT License

Copyright (c) 2004-2017, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oleg Nenashev, and other Jenkins contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<!--
  Windows service definition for Jenkins.

  To uninstall, run "jenkins.exe stop" to stop the service, then "jenkins.exe uninstall" to uninstall the service.
  Both commands don't produce any output if the execution is successful. 
-->
<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins automation server.</description>
  <env name="JENKINS_HOME" value="D:\software\jenkins\pzy\Jenkins\.jenkins"/>
  <!--
    if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
    The following value assumes that you have java in your PATH.
  -->
  <executable>C:\Program Files\Java\jdk1.8.0_201\\bin\java.exe</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "D:\software\jenkins\jenkins.war" --httpPort=9000 --webroot="D:\software\jenkins\pzy\Jenkins\war"</arguments>
  <!--
    interactive flag causes the empty black Java window to be displayed.
    I'm still debugging this.
  <interactive />
  -->
  <logmode>rotate</logmode>

  <onfailure action="restart"/>
  
  <!-- 
    In the case WinSW gets terminated and leaks the process, we want to abort
    these runaway JAR processes on startup to prevent corruption of JENKINS_HOME.
    So this extension is enabled by default.
  -->
  <extensions>
    <!-- This is a sample configuration for the RunawayProcessKiller extension. -->
    <extension enabled="true" className="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
      <pidfile>D:\software\jenkins\pzy\Jenkins\jenkins.pid</pidfile>
      <stopTimeout>10000</stopTimeout>
      <stopParentFirst>false</stopParentFirst>
    </extension>
  </extensions>
  
  <!-- See the referenced examples for more options -->
  
</service>

---> 2.1.2 保存后重启jenkins服务 

任务管理器-> 服务-> 搜索jenkins -> 右键重新启动

---> 2.1.3 打开 localhost:9000 

根据红字内的地址 找到你本地的文件夹 复制粘贴即可

---> 2.1.4 安装插件  直接安装推荐插件

---> 2.1.5 创建一个管理员账号 用于登录

->2.2 系统配置操作

---> 2.2.1 (安装插件) maven 搜 Maven Integration

---> 2.2.2 安装 Publish Over SSH

---> 2.2.3 安装插件Gitee

-> 2.3 配置maven 

--->2.3.1 操作方式:  首页-> 系统管理 -> 全局配置 找到maven安装

 -> 2.4 配置jdk 位置上同 

---> 2.4.1找不到jdk安装位置???

       解决:  cmd命令(java -verbose)

 ->2.4.2 如图所示 进行配置

 ---> 2.4.3 应用并保存, 返回首页

->2.5 新建item任务

---> 2.5.1 选择自由风格 起名

 ---> 2.5.2 配置git (基本操作 账号 密码 仓库地址)

 添加账号密码凭证

 

 ---> 2.5.3 向下拉 修改分支

 ---> 2.5.4 点击触发器 点击构建 调用顶层maven目标

指令如下: clean install -Dmaven.test.skip=true 打包
 

 --->2.5.5 保存

-> 2.6 点击构建 

---> 2.6.1 点击pzy-test 执行拉取代码

自动maven进行构建 (第一次可能会很慢), 可以看日志, 然后看jar包保存位置  

---> 2.6.2 效果图如下 : 

3.  在服务器中添加启动和关闭脚本 

设定 jar包存放在 /opt/app下

-> 3.1创建并执行jar包 尝试关闭./shutdown.sh

#!/bin/bash

#删除历史数据
#rm -rf xxoo

appname=$1
#获取传入的参数
echo "arg:$1"


#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`

echo $pid

#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
        then
                echo "$appname not started"

        else
               kill -9 $pid
                echo "$appname stoping...."

fi

-> 3.2 创建并执行jar包 尝试启动 ./startup.sh

APP_NAME=$1
echo $APP_NAME
/opt/app/shutdown.sh $APP_NAME
source /etc/profile
nohup /usr/local/jdk1.8.0_45/bin/java -jar -Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M  $APP_NAME --spring.profiles.active=test >>/opt/app/nohup.out 2>&1 &
echo "success"
sleep 10s

 ->3.3  权限不够 命令来凑

chmod +x startup.sh
chmod +x shutdown.sh

4. 系统ssh配置方式

-> 4.1 管理jenkins点击 找到选框位置

 -> 4.2 安装插件ssh  搜索Publish Over SSH

 正常安装

 -> 4.3 修改系统配置 如图

 -> 4.4 拉到下面 找到ssh servers  填写服务器基本信息

 -> 4.5 保存返回

5. 配置新的item任务

<实现单项目自动化部署> 

 -> 5.1 选择自由风格

 -> 5.2 返回首页, 点击 红框位置

 -> 5.3 点击配置 如图

 -> 5.4 点击高级 选择并填写自定义工作空间

我的位置如下: D:\software\jenkins\pzy\Jenkins\.jenkins\workspace\pzy-test

 

 -> 5.5 点击构建后操作

 

-> 5.6 核心 填写基本信息 如图所示 

 ->5.7  点击运行 build now, 查看控制台输出日志  正确如图

 

 -> 5.8 查看服务器是否部署成功

jps -v -l 查看 启动参数和jar包名


到此 jenkins上篇结束 多个服务 操作相似


 (待续未完) 下篇更精彩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

redis基础总结-常用命令

redis常用指令3. 常用指令3.1 key 操作分析3.1.1 key应该设计哪些操作&#xff1f;3.1.2 key 基本操作3.1.3 key 扩展操作&#xff08;时效性控制&#xff09;3.1.4 key 扩展操作&#xff08;查询模式&#xff09;3.2 数据库指令3.2.1 key 的重复问题3.2.2 解决方案3.2.3 数据库…

Linux Shell 实现一键部署Redis6

redis 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 redis 参考 redis下载RedisDesktopManagerd…

ThreadPoolExecutor获取原始异常

ThreadPoolExecutor作用 ThreadPoolTaskExecutor是Spring框架提供的一个线程池实现&#xff0c;它是基于Java的ThreadPoolExecutor实现的。ThreadPoolTaskExecutor可以管理线程池中的线程&#xff0c;以满足多线程并发执行任务的需要。 FutureTask作用 FutureTask的主要作用…

SpringAMQP

SpringAMQP3.SpringAMQP3.1.Basic Queue 简单队列模型3.1.1.消息发送3.1.2.消息接收3.1.3.测试3.2.WorkQueue3.2.1.消息发送3.2.2.消息接收3.2.3.测试3.2.4.能者多劳3.2.5.总结3.3.发布/订阅3.4.Fanout3.4.1.声明队列和交换机3.4.2.消息发送3.4.3.消息接收3.4.4.总结3.5.Direct…

docker

1.docker安装 1.安装docker 2.配置docker加速器 3.docker的基本目录 /etc/docker/ docker的认证目录 /var/lib/docker/ docker的应用目录 2.docker容器 docker image pull nginx docker container stop nginx docker container rm $(docker container ps -aq) #q: --quiet …

代码随想录-62-530. 二叉搜索树的最小绝对差

目录前言题目1.二叉搜索树中序遍历特性介绍&#xff08;并且使用一个指针始终指向前一个&#xff09;全局变量2. 本题思路分析&#xff1a;&#xff08;中序遍历&#xff09;3. 算法实现4. 算法坑点前言 我在刷卡哥的“代码随想录”&#xff0c;自己的总结笔记均会放在“算法刷…

OpenCV基础之边缘检测与轮廓描绘

文章目录OpenCv基础之边缘检测与轮廓描绘Canny边缘检测图像轮廓绘制轮廓OpenCv基础之边缘检测与轮廓描绘 边缘检测&#xff1a;主要是通过一些手段检测数字图像中明暗变化剧烈&#xff08;即梯度变化比较大&#xff09;像素点&#xff0c;偏向于图像中像素点的变化。 轮廓检测…

CAN-FD协议

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录CAN-FD协议**CAN-FD协议需要什么&#xff1f;**CAN-FD 协议的属性CAN-FD 协议中的安全性OSI 层中的 CAN-FD**CAN-FD物理层设计**CAN-FD 数据链路层数据链路层的…

win10自带的输入法变成了繁体怎么改回来

win x 键弹出设置窗口 选择设置 点击时间和语言 点击语言 点击中文(中国人民共和国) 先点击一下会出来选项 在点击选项进去 往下拉最底下找到 键盘下面你正在使用的输入法 点击他 选择选项进去&#xff0c;然后点击常规 在 选择字符集这里下面 选择简体中文

SpringBoot中配置文件加密及跨域支持

给application.properties文件中的某些值加密,比如数据库账号密码等. 引入依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</version> </dep…

Properties

Properties概述&#xff1a; 是一个Map体系的集合类 Properties可以保存到流中或从流中加载 练习&#xff1a;Properties作为Map集合的使用 package com.aynu13;//练习&#xff1a;Properties作为Map集合的使用import java.util.Properties; import java.util.Set;public cla…

交友项目【手机号登录注册功能】实现

目录 1&#xff1a;用户登录 1.1&#xff1a;接口文档 1.2&#xff1a;API接口定义 1.3&#xff1a;Dubbo服务提供者 配置文件 启动引导类 数据访问层 API接口实现 1.4&#xff1a;Dubbo服务消费者 UserController UserService 1.5&#xff1a;访问测试 1.6&#…

【Django 网页Web开发】23. 实战项目:Excel和form和moudleForm的文件上传(16)(保姆级图文)

目录excel文件批量上传数据1. depart_list.html2. url.py3. moudle.py4. depart.py5. upload.pyform文件上传1. upload_form.html2. url.py3. moudle.py4. upload.py5. 目录media存放用户上传的文件总结欢迎关注 『Django 网页Web开发』 系列&#xff0c;持续更新中 欢迎关注 『…

PHY- PHY芯片概述

1 PHY概述 关于Internet Protocal的分层模型可以参考文章 :【Internet Protocal-OSI模型中的网络分层模型】,下面我们讲讲底层以太网控制器和收发器的知识。其主要是处理OSI模型中的物理层和链路层的事情。 在CAN/CANFD、FlexRay等总线中,有控制器Controller和收发器Transc…

【华为OD机试】1024 - 素数伴侣

文章目录一、题目&#x1f538;题目描述&#x1f538;输入输出&#x1f538;样例1&#x1f538;样例2二、思路解析三、代码参考作者&#xff1a;KJ.JK&#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &…

Ae:灯光选项

灯光选项 Light Options&#xff0c;用于调整光源的特性以及所产生的投影的相关设置。下面以属性最多的聚光灯的灯光选项为例进行说明。强度 Intensity光源的亮度。数值越大&#xff0c;光照越大。负值可产生吸光效果&#xff0c;即降低场景中其它光源的光照强度。颜色 Color默…

Java客户端操作索引库

ElasticSearch第二天 学习目标&#xff1a; 能够使用java客户端完成创建、删除索引的操作能够使用java客户端完成文档的增删改的操作能够使用java客户端完成文档的查询操作能够完成文档的分页操作能够完成文档的高亮查询操作能够搭建Spring Data ElasticSearch的环境能够完成…

C++中的类模版

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

银行数字化转型导师坚鹏:金融科技与银行转型

金融科技与银行转型课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚5G如何赋能银行数字化转型&#xff1f; 不清楚金融科技如何赋能银行数字化转型&#xff1f; 不了解银行数字化转型标杆成功案例&#xff1f; 课程特色&#xff1a;…