Jenkins入门(二)Jenkins安装及自动构建部署

news2024/11/19 3:43:56

一、安装环境

1. 机器要求:

256 MB 内存,建议大于 512 MB

10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)

需要安装以下软件:

Java 8 ( JRE 或者 JDK 都可以)

2. 安装JDK

检索可用包

yum search java|grep jdk

安装JRE

yum install java-1.8.0-openjdk

安装JDK

yum install -y java-devel

3.将 jenkins.war 放到服务器中

jenkins.war下载地址(注意版本,我这里用的是):Jenkins 的安装和设置

 执行命令:

java -jar jenkins.war

首次启动war包会在`/root/.jenkins`生成配置文件,待完全启动成功后 访问服务器8080端口完成配置,在控制台会又初始化后的密码:

2022-12-25 11:52:50.697+0000 [id=41]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata
2022-12-25 11:52:50.758+0000 [id=41]	INFO	hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2022-12-25 11:52:51.166+0000 [id=26]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

91fb7749cf4f4320b927b36dc2c45d37

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

不要忘了关闭防火墙哦!,浏览器访问:http://192.168.1.129:8080/

输入初始化密码:91fb7749cf4f4320b927b36dc2c45d37

 选择安装推荐的插件

安装完成后,创建管理员 

注意:这里启动完jenkins后,建议配置一下免安全认证,不然重启后,登陆报错:

jenkins:RI:	/j_spring_security_check

具体配置如下:

vi /root/.jenkins/config.xml

 将 <useSecurity>true</useSecurity>  改为  <useSecurity>false</useSecurity>   然后重启!

 4. 安装maven

将mavne包放到服务器中

 解压

tar -vxzf apache-maven-3.8.6-bin.tar.gz

移动并改名

mv apache-maven-3.8.6 /usr/local/maven

5. Jenkins安装插件

登陆Jenkins后,选择 Manage Jenkins

选择 Manage Plugins 

 安装构建项目用的 maven集成插件

最下面等待安装

 安装完成后,返回首页,点击新建Item

创建一个maven项目

将GitLab项目地址添加上,这里也需要在Jenkins服务器中安装git 

注意:Credentials 为添加凭证,这里作为公开测试使用,没有添加

 安装git命令

yum install git

 这里可以指定分支

6. 配置maven和pom.xml

在 Global Tool Configuration中配置 maven路径,即为服务器安装的路径:/usr/local/maven

 在之前的项目配置中,配置 pom.xml文件位置:即 项目名称+pom.xml

7. 修改阿里云镜像

<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in
 |                 ${maven.conf}/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>${user.home}/.m2/repository</localRepository>
  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
    <pluginGroup>org.mortbay.jetty</pluginGroup>
  </pluginGroups>

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     | 
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are 
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
    
    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
    <server>
        <id>releases</id>
        <username>ali</username>
        <password>ali</password>
      </server>
      <server>
        <id>Snapshots</id>
        <username>ali</username>
        <password>ali</password>
      </server>
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
    <mirror>
      <!--This is used to direct the public snapshots repo in the 
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>
    <mirror>
      <!--This is used to direct the public snapshots repo in the 
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots1</id>
      <mirrorOf>public-snapshots1</mirrorOf> 
      <url>https://artifacts.alfresco.com/nexus/content/repositories/public/</url>
    </mirror>
  </mirrors>

  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
   <profiles> 
    <profile>
      <id>development</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <!--this profile will allow snapshots to be searched when activated-->
      <id>public-snapshots</id>
      <repositories>
        <repository>
          <id>public-snapshots</id>
          <url>http://public-snapshots</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>public-snapshots</id>
          <url>http://public-snapshots</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
 
   <activeProfiles>
    <activeProfile>development</activeProfile>
    <activeProfile>public-snapshots</activeProfile>
   </activeProfiles>

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

 8、构建项目包 

 等待构建完成中可以查看控制台输出

 构建完成

9. 查看构建好的jar包

/root/.m2/repository/com/fan/RabbitmqTest/0.0.1-SNAPSHOT

 10. 安装 Publish Over SSH 插件

11. 添加远程服务器

安装成功后,在系统配置中添加一台远程服务器

 

配置远程服务器信息

测试为Success 即可

 

12. 配置构建后自启动

点击项目名称,找到配置

 在 Post Steps 中找到刚刚安装的插件

这里需要注意的是,匹配传递的 jar 包 ,**/ 表示任意目录,实际生成的 jar包名称为:RabbitmqTest-0.0.1-SNAPSHOT.jar,所以,这里也需要匹配

 重新构建后,自动启动。

这里传递成功后执行的命令可能会因为nohup日志导致卡死,从而超时,所以对命令进行优化: 

 nohup java -jar /root/hzf/RabbitmqTest*.jar &>mylog.log &

未完待续... 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java之JDBC-ResultSet(结果集)

之前的dml语句都返回值都是int表示有改动的行数 那么Select可是要展示数据的 SELECT查询的结果 通过这个ResultSet遍历 然后通过next方法来一行行读取数据 类似于迭代器(肯定不是迭代器) 里面还包含获得的数据元素 相当于这个既包含元素&#xff0c;还能迭代自己的元素 具体你…

[Vulnhub] DC-5

下载链接&#xff1a;https://download.vulnhub.com/dc/DC-5.zip 同DC-4 这个靶机也是只有一个flag 不过官方描述说这个可能提高了一点点难度 官方描述&#xff1a; 据我所知&#xff0c;只有一个可利用的入口点可以进入&#xff08;也没有 SSH&#xff09;。这个特定的入口点…

RocketMQ 原理介绍及详细安装教程

一、为什么选择RocketMQ Apache RocketMQ 自诞生以来&#xff0c;因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨&#xff0c;RocketMQ 已经成为业内共识的金融级可靠业务消息首选方案&#xff0c;被广泛…

python使用pywin32库将ppt导出为高清图片

python使用pywin32库将ppt导出为高清图片 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、安装库 需要安装pywin32库 pip install pywin32二、代码原理 WPS高清图片导出需要会…

Fisco Bcos区块链四(WeBase结点前置服务)

文章目录区块链开荒技术文档&#xff1a;https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html5、WeBASE节点前置服务1、前提条件2、拉取代码3. 编译代码4. 修改配置&#xff08;1&#xff09;进入dist目录&#xff08;2&#xff09;进入conf目录复制配置…

一些常见代码如from __future__ import ...的功能

1. 有一些代码在一开始会通过from __future__ import...导入模块。 __future__是什么&#xff1f; 随着python版本的升级&#xff0c;一些功能也会产生变化&#xff0c;__future__中包括了一些新版本的功能&#xff0c;通过导入__future__中的模块&#xff0c;可以在旧pyth…

IPSec

IPSec是网际层实现IP分组端到端安全传输的机制&#xff0c;由一组安全协议组成。 鉴别首部&#xff08;Authentication Header&#xff0c;AH&#xff09;和封装安全净荷&#xff08;Encapsulating Security Payload&#xff0c;ESP&#xff09;是其中两个协议&#xff0c;AH和…

如何云同步vscode的配置到码云(gitee)上

目录 &#x1f525; 写在前面 一、安装插件 二、创建Gist &#x1f449; 如何获取Gist ID &#x1f449; 如何进入代码片段管理页面 三、创建私人令牌 四、插件配置 五、插件使用 &#x1f449; 上传配置 &#xff1a;命令为 upload setting &#x1f449; 下载配置 …

基于语义分割Ground Truth(GT)转换yolov5图像分割标签(路面积水检测例子)

基于语义分割Ground Truth&#xff08;GT&#xff09;转换yolov5图像分割标签&#xff08;路面积水检测例子&#xff09; 概述 随着开发者在issues中对 用yolov5做分割任务的呼声高涨&#xff0c;yolov5团队真的在帮开发者解决问题&#xff0c;v6.0版本之后推出了最新的解决方…

2、等价类划分

如何划分等价类 在给定了输入或外部条件之后&#xff0c;等价类的划分原则如下&#xff1a; 如果输入条件规定了一个取值范围&#xff08;例如&#xff0c;“数量可以是1到999”&#xff09;&#xff0c;那么就应确定出一个有效等价类&#xff08;1<数量<999&#xff0…

【大唐杯备考】——5G网络架构的演进趋势(学习笔记)

&#x1f4d6; 前言&#xff1a;本期介绍5G网络架构的演进趋势。 目录&#x1f552; 1. 5G网络架构概述&#x1f552; 2. 4G网络架构概述&#x1f552; 3. 核心网架构演进&#xff08;了解&#xff09;&#x1f558; 3.1 2G核心网&#x1f558; 3.2 3G、4G核心网&#x1f558; …

Golang - 如何编写Go代码

Golang - 如何编写Go代码 今天学习下如何在Go模块中开发一个简单的Package包&#xff0c;并介绍Go相关工具&#xff0c;以及如何获取、构建、安装模块等使用方法。本文中的案例需要使用Go 1.13及以上版本。 代码组织 Go程序以package包的形式组织&#xff0c;package包是同一…

Vue11-事件修饰符

结论&#xff1a;前三最常用 1.prevent 此时点击链接&#xff0c;除了会提示我是一个超链接信息外&#xff0c;a标签还会默认后进行链接跳转&#xff0c;此时为了阻止默认跳转事件&#xff0c;可以加prevent属性实现。此时只有弹框提示是信息&#xff0c;链接不会进行跳转 2.st…

Aqua Data Studio 22.1.x Crack

Aqua Data Studio 数据库 IDE 的优势 使用单一数据库工具管理大量数据源的多项任务 轻松开发、执行和共享 SQL 语句 通过复制和粘贴在类似 Excel 的网格中查看、过滤和编辑查询结果 创建可视化和仪表板以通过拖放来分析数据 比较架构、数据、查询结果、文件和文件夹 将数据库逆…

流量录制工具怎么选?看完这篇文章就懂了

流量录制&#xff1a;在不影响用户正常使用的前提下&#xff0c;获取线上用户的真实请求和服务响应结果&#xff0c;将其保存或者转发到目标应用。 采用不同的流量录制手段&#xff0c;可以采集不同传输阶段的流量。 01、流量复制方式 1、基于应用层的复制&#xff1a; 优点…

Linux串口调试助手

前言 基于网上资料对相关概念做整理汇总&#xff0c;部分内容引用自文后文章。 在linux下使用串口终端有两个选择&#xff1a; 基于命令行的minicom图形界面的putty&#xff08;xshell没有linux版本&#xff09;1 概述 1.1 Linux的串口设备 Linux下的串口和windows不同&…

移动web媒体查询

移动web媒体查询媒体查询媒体查询使用场景-1媒体查询使用场景-2媒体查询使用场景-3Bootstrap栅格系统row 类列偏移列嵌套移动web阶段重点知识媒体查询 使用媒体查询做响应式页面,为Bootstrap 做铺垫。 body {background-color: gray; }/* 大于等于768px 为粉色 */ media (min…

注意力提示

人类的注意力是有限的、有价值和稀缺的资源。 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性&#xff0c;后者则依赖于意识。 注意力机制与全连接层或者汇聚层的区别源于增加的自主提示。 由于包含了自主性提示&#xff0c;注意力机制与全连接的层或…

MiG Calendar 6.9.3 for Java Crack

将日历功能添加到您的 Java 应用程序。 使用 MiG Calendar&#xff0c;您可以毫不费力地将任何类型的基于时间的可视化添加到您的应用程序中。您可以创建任何东西&#xff0c;从完整的日历应用程序&#xff08;如 Outlook 或 Apple 的 iCal&#xff09;到电视节目表或航班信息应…

居家办公 01 - 组网

# 第一步 - 安装虚拟机 vmbox安装&#xff1a;https://www.virtualbox.org/wiki/Downloads # 第二步 - 修改配置 1. 配置虚拟机网络 网卡1&#xff1a;Host-Only&#xff0c;仅主机与虚拟机网络互通 网卡2&#xff1a;NAT&#xff0c;虚拟机访问互联网 2. 配置虚拟机网络 v…