精华内容
下载资源
问答
  • 基于spring boot 自动化部署脚本,简单方便,可以用于jenkins
  • Linux centos7环境安装配置 安装JDK yum -y install java-1.8.0 java-devel-1.8.0 安装git yum -y install git 安装jenkins cd /etc/yum.repos.d/ wget ...

    Linux centos7环境安装配置

    • 安装JDK
    yum -y install java-1.8.0 java-devel-1.8.0
    • 安装git
    yum -y install git
    • 安装jenkins
    cd /etc/yum.repos.d/
    wget http://pkg.jenkins.io/redhat/jenkins.repo
    rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
    yum install -y jenkins
    • jenkins默认监听8080端口,我需要改端口号
    vim /etc/sysconfig/jenkins
    JENKINS_PORT="8000"
    • 启动jenkins
    systemctl start jenkins
    cat /var/lib/jenkins/secrets/initalAdminPassword
    • 项目默认位置
    /var/lib/jenkins/workspace/
    • 安装插件(按需要呗,反正随时可以装)

    • jenkins中生成密钥配置到gitlab和服务器root用户

    更改jenkeins的可运行终端
    vim /etc/passwd
    jenkins:x:991:988:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
    登录jenkins
    su - jenkins
    生成秘钥
    ssh-keygen -t rsa
    cat .ssh/id_rsa.pub
    将公钥添加到gitlab的SSH Keys和root用户
    ssh-copy-id -i .ssh/id_rsa.pub root@IP

    项目配置

    新建项目

    单分支构建

    • 源码管理

    源码管理

    • 构建触发器(http://名称:token@IP地址:监听端口/job/项目名称/build?token=身份验证令牌)

    名称:token

    构建触发器

    • 构建(选执行shell)

    构建

    • 把构建触发器的链接填到git项目的webhooks里就好啦
    • 如果git地址用的外网的记得把jenkins的全局安全设置不要勾“防止跨站点请求伪造”

    Git Parameter这个插件可以选择多分支构建

    General

    源码管理

    选择分支

    展开全文
  • 一、环境准备 1. 安装JDK 利用yum脚手架工具,查询jdk版本 yum -y list java* 使用以下指令安装JDK。带“-devel”的是JDK,不带的是...这里推荐使用yum方式安装Jenkins,最简单方便。 yum的repos中默认是没有Jenk

    一、环境准备

    1. 安装JDK

    1. 利用yum脚手架工具,查询jdk版本
    yum -y list java*
    
    1. 使用以下指令安装JDK。带“-devel”的是JDK,不带的是jre。
    yum install java-1.8.0-openjdk-devel.x86_64
    
    1. 安装完成,使用 java -version 命令查看是否安装成功。
    2. 安装位置 /usr/lib/jvm

    二、安装Jenkins

    这里推荐使用yum方式安装Jenkins,最简单方便。

    1、yum的repos中默认是没有Jenkins的,需要先将Jenkins存储库添加到yum repos,分别执行以下指令

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    

    在这里插入图片描述

    2、yum安装Jenkins
    出现提示是否下载的时候输入y并回车

    yum install jenkins
    

    在这里插入图片描述
    3、Jenkins安装好后,我们还需要做以下的配置修改:

    • 默认情况是Jenkins是使用Jenkins用户启动的,但这个用户在默认情况下系统并没有赋予权限,因此我们将启动用户修改为root
    • Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口
    1. 进入Jekins配置文件vi /etc/sysconfig/jenkins
      在这里插入图片描述

    找到图中位置,分别修改为root、8888(端口根据自己情况设置,服务器记得修改安全组放开对应端口

    4、修改完成,启动Jenkins service jenkins start
    在这里插入图片描述

    三、Jenkins配置

    1. 安装完成后,在浏览器打开xxx:8888,即可进入Jenkins,使用指令
      tail /var/lib/jenkins/secrets/initialAdminPassword 获取密码,填入并continue。

    2. 跳过插件安装
      因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装
      在这里插入图片描述
      在这里插入图片描述

    3. 添加一个管理员账户,并进入Jenkins后台
      在这里插入图片描述
      在这里插入图片描述

    4. 开始使用Jenkins
      在这里插入图片描述

    四、Jenkins插件管理

    Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。

    1. 修改Jenkins插件下载地址

    Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址:

    Jenkins->Manage Jenkins->Manage Plugins,点击Available
    在这里插入图片描述
    这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址。

    依次执行以下指令:

    cd /var/lib/jenkins/updates
    
    sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
    

    最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址。

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    

    在这里插入图片描述

    2.本地化语言(中文):

    如图选择
    在这里插入图片描述
    在available中搜索Localization: Chinese (Simplified)、Locale,分别安装
    在这里插入图片描述

    选中左边框框,点击不重启安装按钮,进入以下页面(仅作为示例),等待如图所示信息,即按照成功。
    在这里插入图片描述
    按照如下设置即可
    在这里插入图片描述
    比较完美的汉化
    在这里插入图片描述

    3. Jenkins凭证管理

    安装Credentials Binding插件

    要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
    在这里插入图片描述

    我在安装过程中,SSH Credentials报错,然后到主页面,提示我jenkins升级,我就升级了,等升级完成就安装好了

    在这里插入图片描述
    可以添加的凭证有5种:
    在这里插入图片描述

    • Username with password:用户名和密码
    • SSH Username with private key: 使用SSH用户和密钥
    • Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
    • Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
    • Certificate:通过上传证书文件的方式

    常用的凭证类型有:Username with password(用户密码)SSH Username with private key(SSH 密钥)

    接下来以使用Git工具到Gitee拉取项目源码为例,演示Jenkins的如何管理Gitee的凭证。

    安装Git插件和Git工具

    为了让Jenkins支持从Gitee拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。

    • Git插件安装:
      插件中搜索Git并安装
      在这里插入图片描述

    • CentOS7上安装Git工具:

    yum install git -y  安装
    git --version    安装后查看版本

    4. 关联云端代码

    (1)用户密码类型

    1)创建凭证
    Jenkins->凭证->系统->全局凭证->添加凭证
    在这里插入图片描述

    在这里插入图片描述
    2)测试凭证是否可用
    创建一个FreeStyle项目:新建Item->FreeStyle Project->确定
    在这里插入图片描述
    在源码管理中,填入仓库地址并选择刚刚配置的凭据
    在这里插入图片描述
    保存后,点击“立即构建”。
    在这里插入图片描述
    发现已经看到gitee上的代码了,说明已经成功。
    在这里插入图片描述
    查看/var/lib/jenkins/workspace/目录,可以发现已存在新建的工程
    在这里插入图片描述

    (2)SSH密钥类型

    SSH免密登录示意图
    在这里插入图片描述

    1. 使用服务器的root用户生成公钥和私钥

      ssh-keygen -t rsa

      在/root/.ssh/目录保存了公钥和使用
      在这里插入图片描述
      id_rsa:私钥文件
      id_rsa.pub:公钥文件

    2. 把生成的公钥放在Gitee中

      在gitee账号-设置-SSH公钥
      复制刚才id_rsa.pub文件的内容到这里,点击确定。
      在这里插入图片描述

    3. 在Jenkins中添加凭证,配置私钥

      在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来。
      在这里插入图片描述

    注意

    如果刚刚只设置了一种凭据类型,Username with password。则需要在系统管理-凭据配置,勾选SSH Username with private key。
    在这里插入图片描述
    再在系统管理-Manage Credentials中添加凭据
    在这里插入图片描述

    跟上一个方法一样,建立新任务MyTest2,配置后,立即构建。

    注意: 使用gitee的SSH仓库地址
    在这里插入图片描述

    5. Maven安装和配置

    在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

    安装Maven

    先上传Maven软件到centOS服务器上

    tar -xzf apache-maven-3.8.1-bin.tar.gz  解压
    mkdir -p /opt/maven               创建目录
    mv apache-maven-3.8.1/* /opt/maven   移动文件

    配置环境变量

    vi /etc/profile

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 
    export MAVEN_HOME=/opt/maven
    export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
    

    source /etc/profile   配置生效
    mvn -v          查找Maven版本

    全局工具配置关联JDK和Maven

    Jenkins->系统管理->全局工具配置->JDK->新增JDK,配置如下:
    在这里插入图片描述

    Jenkins->系统管理->全局工具配置->Maven->新增Maven,配置如下:
    在这里插入图片描述

    添加Jenkins全局变量

    Jenkins->系统管理->系统配置->全局属性,添加三个全局变量

    在这里插入图片描述

    JAVA_HOME、M2_HOME、PATH+EXTRA
    在这里插入图片描述

    JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk
    M2_HOME /opt/maven
    PATH+EXTRA $M2_HOME/bin
    

    修改Maven的settings.xml

    mkdir /root/repo 创建本地仓库目录
    vim /opt/maven/conf/settings.xml

    本地仓库改为:/root/repo/

    <localRepository>/root/repo/</localRepository>

    添加阿里云私服地址:

    <mirrors>
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>centra\l</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
     </mirror>
    </mirrors>

    测试Maven是否配置成功

    使用之前的测试项目,修改配置
    在这里插入图片描述
    在这里插入图片描述

    保存后,立即构建,如果最终成功打成war包,说明配置生效
    在这里插入图片描述
    Tomcat安装和配置

    安装Tomcat8.5

    把Tomcat压缩包上传到centOS服务器

    yum install java-1.8.0-openjdk* -y     安装JDK(已完成,跳过)
    tar -xzf apache-tomcat-8.5.65.tar.gz    解压
    mkdir -p /opt/tomcat           创建目录
    mv apache-tomcat-8.5.65/* /opt/tomcat/  移动文件
    /opt/tomcat/bin/startup.sh        启动tomcat

    注意:服务器已经关闭了防火墙,所以可以直接访问Tomcat了

    在这里插入图片描述
    配置Tomcat用户角色权限

    默认情况下Tomcat是没有配置用户角色权限的
    在这里插入图片描述
    在这里插入图片描述
    但是,后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,添加用户及权限

    vim /opt/tomcat/conf/tomcat-users.xml

    用户和密码都是:tomcat

    注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

    vim /opt/tomcat/webapps/manager/META-INF/context.xml

    把下面这行注释掉即可!
    在这里插入图片描述
    重启Tomcat,访问测试

    /opt/tomcat/bin/shutdown.sh 停止
    /opt/tomcat/bin/startup.sh 启动

    访问: http://xxxx:8080/manager/html ,输入tomcat和tomcat,看到以下页面代表成功了。
    在这里插入图片描述

    五、Jenkins构建Maven项目

    1. Jenkins项目构建类型(1)-Jenkins构建的项目类型介绍

    Jenkins中自动构建项目的类型有很多,常用的有以下三种:

    • 自由风格软件项目(FreeStyle Project)
    • Maven项目(Maven Project)
    • 流水线项目(Pipeline Project)

    每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。(PS:个人推荐使用流水线类型,因为灵活度非常高)

    2. Jenkins项目构建类型(2)-自由风格项目构建

    下面演示创建一个自由风格项目来完成项目的集成过程:

    拉取代码->编译->打包->部署

    拉取代码
    与之前一样,新建工程,配置Git信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    echo "开始编译和打包"
    mvn clean package
    echo "编译和打包结束"
    

    立即构建,查看控制台,成功
    在这里插入图片描述
    部署

    把项目部署到远程的Tomcat里面

    1. 安装 Deploy to container插件
      Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
      在这里插入图片描述

    2. 添加Tomcat用户凭证
      在系统管理-Manage Credentials里面添加,和之前的一样
      在这里插入图片描述

    3. 添加构建后操作
      回到我的视图,选择刚才的项目,点击配置
      在这里插入图片描述
      在这里插入图片描述
      立即构建

    3. Jenkins项目构建类型(3)-Maven项目构建

    1. 安装Maven Integration插件
      在这里插入图片描述
    2. 创建Maven项目
      在这里插入图片描述
    3. 配置项目
      拉取代码和远程部署的过程和自由风格项目一样,只是"构建"部分不同
      在这里插入图片描述

    4. Jenkins项目构建类型(4)-Pipeline流水线项目构建(*)

    Pipeline简介

    1. 概念

    Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

    2. 使用Pipeline有以下好处(来自翻译自官方文档):

    代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。

    持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。

    可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline。

    多功能:Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。

    可扩展:Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。

    3. 如何创建 Jenkins Pipeline呢?

    Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy

    Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法

    Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM)中直接载入 Jenkinsfile Pipeline 这种方法)。

    安装Pipeline插件

    Manage Jenkins->Manage Plugins->可选插件
    在这里插入图片描述
    安装插件后,创建项目的时候多了“流水线”类型
    在这里插入图片描述

    Pipeline语法快速入门

    1)Declarative声明式-Pipeline创建项目

    创建流水线项目,选择HelloWorld模板
    在这里插入图片描述

    pipeline {
      agent any
      stages {
         stage('Hello') {
            steps {
               echo 'Hello World'
            }
        }
      }
    }
    
    • stages:代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage

    • stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段。

    • steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容。

    编写一个简单声明式Pipeline:

    pipeline {
      agent any
      
      stages {
         stage('拉取代码') {
            steps {
               echo '拉取代码'
            }
        }
         stage('编译构建') {
            steps {
               echo '编译构建'
            }
        }
         stage('项目部署') {
            steps {
               echo '项目部署'
            }
        }
      }
    }
    

    点击构建,可以看到整个构建过程

    在这里插入图片描述

    2)Scripted Pipeline脚本式-Pipeline

    创建项目,这次选择"Scripted Pipeline"

    在这里插入图片描述

    node {
      def mvnHome
      
      stage('Preparation') { // for display purposes
       
      }
      
      stage('Build') {
       
      }
      
      stage('Results') {
       
      }
    }
    
    • Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,后续讲到Jenkins的Master-Slave架构的时候用到。
    • Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念。
    • Step:步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令一样。

    编写一个简单的脚本式Pipeline

    node {
      def mvnHome
      
      stage('拉取代码') { // for display purposes
         echo '拉取代码'
      }
      stage('编译构建') {
         echo '编译构建'
      }
      stage('项目部署') {
         echo '项目部署'
      }
    }
    

    构建结果和声明式一样

    pipeline {
      agent any
      
      stages {
         stage('拉取代码') {
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']],
    doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
    userRemoteConfigs: [[credentialsId: '68f2087f-a034-4d39-a9ff-1f776dd3dfa8', url:
    'git@192.168.66.100:itheima_group/web_demo.git']]])
            }
        }
         stage('编译构建') {
            steps {
               sh label: '', script: 'mvn clean package'
            }
        }
         stage('项目部署') {
            steps {
               deploy adapters: [tomcat8(credentialsId: 'afc43e5e-4a4e-4de6-984fb1d5a254e434', path: '', url: 'http://192.168.66.102:8080')], contextPath: null,
    war: 'target/*.war'
            }
        }
      }
    }
    

    待更新…

    展开全文
  • Linux Jenkins自动化部署远程服务器项目1.插件下载2. 系统配置3.新建项目 1.插件下载 2. 系统配置 Passphrase 服务器的密码 Path to key 连接远程服务器密钥文件的路径 Key 密钥文件的内容 Name 自定义服务器名 ...

    Linux Jenkins自动化部署远程服务器项目

    1.插件下载

    在这里插入图片描述

    2. 系统配置

    在这里插入图片描述

    Passphrase 服务器的密码

    Path to key 连接远程服务器密钥文件的路径

    Key 密钥文件的内容

    Name 自定义服务器名

    HostName 服务器IP外网地址

    UserName 服务器用户名

    Remote Directory 传输文件的目录

    3.新建项目

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Source files: 这里需要注意一下是项目下,这里是相对路径。当前项目下,千万不要加 “/”
    脚本

    PID=$(ps -ef | grep XXX.jar | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
    echo Application is already stopped
    else
    echo kill $PID
    kill $PID
    fi
    BUILD_ID=DONTKILLME
    cd /home/java/webapps/XXX/target
    nohup java -jar -Xmx2048m -Xms2048m -Xmn1024m -Xss512k XXX.jar  >/dev/null 2>&1 &
    sleep 20
    
    展开全文
  • vim /etc/profile

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,509
精华内容 4,603
关键字:

linux下jenkins自动化部署

linux 订阅