Jenkins安装部署及项目构建

本文详细介绍如何在CentOS环境下安装配置Jenkins、Maven、Git等工具,并实现项目的自动化构建和部署,包括JDK、Git、Maven的安装,Jenkins的安装与配置,ssh免密登录的设置,以及PublishoverSSH的配置。
摘要由CSDN通过智能技术生成

环境安装

安装JDK

查看是否安装了OpenJDK

rpm -qa | grep openjdk

在这里插入图片描述
批量删除OpenJDK

rpm -qa | grep openjdk |xargs rpm -e --nodeps

再次查是否完全删除
在这里插入图片描述
安装JDK,自行下载安装包,解压到指定目录(/usr/bin/java),设置环境变量

vim /etc/profile
export JAVA_HOME=/usr/bin/java

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile

测试一下安装是否正常

java -version

在这里插入图片描述


安装Git

安装依赖

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

yum安装的git版本太低,下载最新版git

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

解压及安装

tar -zxvf git-2.9.5.tar.gz 
cd git-2.9.5
./configure --prefix=/usr/local
make && make install

安装Maven

yum install -y maven

安装Jenkins

本文使用的是rpm方式安装jenkins,Docker方式的安装请参照【Jenkins官方Docker镜像安装

Jenkins官网下载地址在这里插入图片描述
我这里使用的是CentOS环境安装,你可以根据你自己的环境选择对应的安装包下载

wget https://pkg.jenkins.io/redhat-stable/jenkins-2.176.3-1.1.noarch.rpm

安装

rpm -ivh jenkins-2.176.3-1.1.noarch.rpm 

在这里插入图片描述
配置端口,默认为8080,如果未被占用可以不改

vim /etc/sysconfig/jenkins 

在这里插入图片描述
编辑启动参数

vim /etc/init.d/jenkins

里面配置了默认的java路径,如果安装的jdk不在以下路径中,需要手动添加进去
在这里插入图片描述
启动Jenkins服务

service jenkins start/stop/restart

安装成功后Jenkins将作为一个守护进程随系统启动
系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者
启动的时候将从/etc/sysconfig/jenkins获取配置参数
默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置
Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo


配置jenkins

访问前请确保8080端口是通的或直接关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service 

访问 http://ip:8080

在这里插入图片描述
提示需要输入初始密码,根据提示的路径获取密码

cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
我的初始密码

110e191d190a48529a64de427de054b1

进入安装导航界面,选择安装推荐的插件,默认安装
在这里插入图片描述
插件安装中,安装时间略长
在这里插入图片描述
创建超级管理员用户
在这里插入图片描述
在这里插入图片描述
初始化成功
在这里插入图片描述
依次点击 系统管理->插件管理-> 可选插件-> 过滤搜索框中 查找如下插件:

locale plugin (中文汉化插件,可选)
Maven Integration
Deploy to container
Git plugin
GitHub Authentication
GitHub Organization Folder
GitHub Branch Source Plugin
Publish Over SSH

配置Maven、Git、JDK

jdk目录要配置到bin目录之前 /usr/bin/java
git目录要带上/git才能生效
maven配置好xml路径及maven_home路径

有时候JDK配置好会有路径异常的提示,但其实是可以正常构建的,所以只要确保自己的路径是正确的即可
在这里插入图片描述


配置ssh免密登录

Jenkins构建完,需要把生成的项目(*.jar or *.war)包发送到指定机器,这时就需要配置两家机器间的ssh免密登录,我本地的两台机器:

10.0.17.118 应用程序所在的服务器,接收来自jenkins服务器生成的项目包并在本机运行
10.0.17.119 Jenkins所在的服务器,生成项目包送发送给应用服务器

在jenkins所在的119机器上生成密钥

网上有人贴的是用ssh-keygen,这样生成的是openssh,jenkins并不识别,请用下面的格式生成

ssh-keygen -m PEM -t rsa -b 4096

用ssh-copy-id将公钥复制到远程应用服务器118中

ssh-copy-id -i 10.0.17.118

非root用户,可以使用完整参数发送公钥,ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx

在这里插入图片描述
查看是否可以登录

ssh root@10.0.17.118

在这里插入图片描述

成功在119上登录到118应用服务器上


配置Publish over SSH

构建好的项目需要使用ssh免密登录发送到应用服务中,需要配置Publish over SSH

在jenkins服务器中查看并复制公钥

cat ~/.ssh/id_rsa

在这里插入图片描述
进入系统管理 -> 系统设置 ,鼠标滚到最下面,找到 Publish over SSH
填入刚才复制的私钥,name字段随意填写,应用服务器IP地址,登录用户名
保存前一定要先按 【Test Configuration】 按钮,显示success代表设置成功

在这里插入图片描述


项目构建

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

配置项目git路径及账号

账号推荐使用免密的方式登录,将jenkins的公钥添加到仓库中

在这里插入图片描述

在这里插入图片描述

clean package -Dmaven.test.skip=true

在这里插入图片描述

本文中的应用服务器目录结构如下:

  • data
    • project
      • logs
        • info.log
        • error.log
      • springboot.jar
      • sh
        • deploy.sh
      • server.pid

建立相关目录

mkdir -p /data/project/{sh,logs}

在sh目录下创建项目启动脚本

vim /data/project/sh/deploy.sh

插入以下内容,可根据自己的环境修改相应的参数

#!/bin/bash
source /etc/profile
JAR=springboot
SERVICE=/data/project
case "$1" in
    start)
        echo "start project..."
        /usr/bin/cd $SERVICE
        nohup java -Dspring.profiles.active=dev -Xms256m -Xmx512m -jar $SERVICE/$JAR.jar >/dev/null 2>&1 &
        echo $! > $SERVICE/server.pid
        echo "start project end..."
    ;;
    stop)
        PID=$(cat $SERVICE/server.pid 2>/dev/null)
        if [ -n "$PID" ];then
                kill -9 $PID
                rm -f $SERVICE/server.pid
        else
                echo "service is not running"
        fi
        echo "stop project end..."
    ;;
    restart)
       sh $0 stop
         sleep 3
       sh $0 start
    ;;
    *)  echo 'You do not select a number between start stop restart'
    ;;
esac
exit 0

配置可执行权限

chmod +x deploy.sh 

执行构建操作
在这里插入图片描述
在这里插入图片描述
看到出下输出内容,项目构建成功
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值