0
点赞
收藏
分享

微信扫一扫

Jekins的简介和使用

干自闭 2022-08-18 阅读 65

1.Jenkins

1.1什么是Jenkins

1.2 什么是持续集成

1.3与Jenkins的持续集成

1.4为什么使用jenkins

 

2.安装jenkins

(1)把jenkins的war放入虚拟机中

(2)启动该war包

(3) 访问jenkins

 

需要密码:

(4)查看密码:

 

(5)通过浏览器访问jenkins
  

(6)安装插件

 

 

(7)创建用户

 

成功登录后的页面

 

3.忘记密码如何修改密码

  • 进入到jenkins的工作目录,找到config.xml,我这里是/root/.jenkins/config.xml

  • 修改该配置文件useSecurity的节点值为false

  • 重启jenkins项目后,再次访问jenkins站点

  • 进入到系统管理

 

  • 找到全局安全配置

 

 

进入到用户列表,找到admin用户

 

 

 

3.jenkins集成jdk

3.1 下载Linux版JDK jenkins

3.2上传至Linux并解压

3.3配置/etc/profile文件

3.4 使配置文件生效,并检查版本号

3.5jenkins中配置JDK路径

(1)

(2)

4.jenkins集成git

为了jenkins能够拉取代码,需要安装Git环境和jenkins对应的Git插件

4.1CentOS 7上安装Git环境

4.2jenkins安装Git插件

4.3jenkins配置Git环境

此处无需在jenkins中配置Git环境,采用默认生成的即可

4.4Gitee上任意建一个仓库

 

4.5测试凭据是否能够使用

4.5.1 jenkins-》新建任务-》自由风格项目

 

 

 

 

 

进入jenkins的工作空间查看文件是否拉取下来,所有拉取的文件都会存放在jenkins工作空间中  

 

到此用户名密码方式的凭证已经打通Git

5.jenkins集成maven

jenkins上发布Java项目时需要使用Maven来进行构建打包(Gradle项目则需要安装配置Gradle)

5.1下载安装

5.2环境配置

5.3使配置生效并查看安装情况

5.4修改maven的镜像    

修改本地仓库位置

 

 

 <!--本地仓库-->          
  <localRepository>/data/software/repository</localRepository>
  
 
    <!--阿里云镜像-->
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven mirror</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

5.5jenkins集成maven

5.5.1

5.5.2 安装Maven插件

 

5.5.3测试:

如果gitee上的maven项目内容发生改变,则会拉取并进行编译 打包了

(1)创建一个gitee仓库

(2)idea中创建一个maven工程

(3)把idea项目上传到git远程仓库  

(4)jenkins拉取项目

 

 

 

 

 

从日志可以看到代码已经在拉取了,第一次拉取过程会比较长。

通过查看/usr/local/repmaven可以看到有存放拉取的jar包,通过这2个证据可以证明settings.xml文件配置成功且有效

6. jenkins自动拉取gitee远程仓库的代码

6.1jenkins中安装gitee插件  

 

修改任务项目:

 

使用内网穿透器:

 

 

 

6.2 需要把jenkins打包好的项目复制到测试服务器

企业: jenkins所在的服务器和我们项目运行时的服务器应该不是同一台机器。

jenkins编译打包好的软件在jenkins所在的服务器。

155上的jar远程复制到156上。---->

在复制过程中需要手动输入密码:

远程登录其他服务器时,能否免密登录。

如何设置免密:

6.2.1设置免密远程登录

(1)在jenkins所在的服务器上输入如下命令

 

(2)接下来需要将公钥导入到认证文件中

 

(3)给对应文件授权

(4)把155上的公钥复制到156上  

(5)测试155登录156

7.使用脚本在jenkins 完成jar的复制

#!/bin/bash

echo "部署的目录和项目名称"
DIR="/data/app"
projectName="my-boot"

echo "待部署的应用服务器,可多台"
server_ips="192.168.223.156"
for server_ip in ${server_ips[@]}
do

echo "ssh连接进行备份操作"
ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} <<EOF
mkdir -p $DIR/backup/${projectName}
mkdir -p $DIR/${projectName}
if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
  mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar 
fi
EOF

echo "拷贝jar包到目标服务器的tmp目录"
scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar root@${server_ip}:/tmp/${projectName}.jar

echo "ssh远程连接进行发布操作"
ssh -q -oStrictHostKeyChecking=no root@${server_ip} <<EOF
mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar

EOF

done

echo "success"

注意:记得修改服务器的地址

修改代码并上传到gitee   测试是否能够自动复制到应用服务器中156

此时156已成功复制

 

在项目所在文件夹创建一个启动脚本start.sh,让项目自动启动 

#!/bin/bash
set -e #任何命令出错就退出
set -o pipefail

APP_ID=my-boot
APP_DIR="/data/app"

nohup java -jar ${APP_DIR}/${APP_ID}/${APP_ID}.jar > release_out.log &
start_ok=false
if [[ $? = 0 ]];then
        sleep 3
        tail -n 10 release_out.log
        sleep 5
        tail -n 50 release_out.log
fi
aaa=`grep "Started" release_out.log | awk '{print $1}'`
if [[ -n "${aaa}" ]];then
    echo "Application started ok"
    exit 0
else
    echo "Application started error"
    exit 1
fi

 创建一个关闭脚本,让项目自动关闭

#!/bin/bash
 
APP_ID=my-boot
ps aux | grep ${APP_ID} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh

此时权限不够

此时两个脚本的运行还需要手动运行 

 

再次修改代码测试是否成功,能否自动启动 

举报

相关推荐

0 条评论