jenkins

目录

1.什么是jenkins

2.为什么使用jenkins

3.安装jenkins

3.1.准备条件

3.1.1.安装jdk下载jdk,上传至linux并解压

3.1.2.配置环境变量

3.1.3.使配置环境变量生效

3.1.4.检测java环境信息

3.2.打开虚拟机

3.3.将把jenkins的war放入虚拟机中

3.4.运行jenkins

3.5.访问浏览器

3.6.查看密码

3.7.输入密码进入

3.8.安装成功之后

4.修改密码

4.1.点击用户列表

4.2. 点击admin

4.3.点击设置

4.4.修改密码

4.5.修改密码之后,重新登录

4.6.登录成功之后

5.jenkins集成jdk

5.1.安装jdk

5.1.1.查看有没有安装jdk

5.1.2.安装jdk

5.2. 点击控制面板

5.3.点击设置

5.4.点击全局配置

5.5.点击新增jdk

5.6.点击保存

6.集成git

6.1.在jenkins所在的服务器上安装git软件

6.2.查看是否安装成功git

6.3. 点击设置

6.4.点击全局配置

6.5.配置

6.6保存

6.7.测试jenkins会不会从gitee拉取代码

6.7.1.打开git

6.7.2.在git中新建一个仓库

6.7.3.修改一下文件的内容并提交

6.7.4.新建item

6.7.5.报错

6.7.6.添加

6.7.7.添加成功之后

6.7.8.build

6.7.9.build完成之后

6.7.10.点击控制台输出

7.Maven集成

7.1.将winds下的maven拉取到Linux上

7.2.解压maven

7.3.配置环境变量

7.4.使环境变量生效

7.5.查看安装情况

7.6.修改maven的镜像

7.6.1.进入maven里面

7.6.2.进入到conf里

7.6.3.进入到settings.xml

7.6.4.修改镜像

7.6.5.修改本地仓库的地址

7.7.登录到jenkins

7.8.点击设置和全局配置

7.9.配置maven

7.10.安装maven插件

7.10.1.点击设置和插件7.

7.10.2搜索maven插件,然后选中,直接安装

7.11.测试maven

7.11.1.在gitee上新建一个仓库

7.11.2.idea中创建一个maven工程

7.11.3.将maven项目上传到gitee上

7.11.4.Jenkins拉去项目

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

8.1.jenkins中安装gitee插件

8.2.修改任务项目的设置

8.3.内网穿透

8.4.在Jenkins上点击保存, 在gitee上点击添加

8.5.测试

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

9.1.前提

9.1.1.克隆一下虚拟机,修改一下ip

9.1.2.链接,看一下javac的命令管用吗?

9.2.找到我们要复制的jar包

9.3.将我们jar包复制到另一台虚拟机上

9.4.测试一下有没有复制成功

9.5.在当前的虚拟机登录另一台虚拟机

9.6.退出登录

10.如何设置免密

10.1.在jenkins所在的服务器上输入如下命令

10.2.接下来需要将公钥导入到认证文件中

10.3.给对应文件授权

10.3.1.如果希望ssh公钥生效需满足至少下面两个条件

10.3.2.给对应文件授权

10.4.将当前虚拟机的公钥复制到另一台虚拟机上

10.4.1.在另一台虚拟机上创建一个文件放入公钥

10.4.2.在当前虚拟机上输入命令

10.4.3.登录另一台虚拟机

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

11.1.测试

11.1.1.随便修改一下idea项目

11.1.2.上传的远程仓库

11.1.3.查看jenkins

12. 编写启动脚本

12.1.创建脚本

12.2.修改权限

12.3.执行

13.编写关闭脚本

13.1.创建关闭的脚本

13.2.修改权限

13.3.关闭

13.4.查看一下是否真的关闭

14.让jenkins自己启动和关闭

14.1.测试

14.1.1.修改idea里面的代码(省略)

14.1.2.提交到远程仓库(省略)

14.1.3.查看jenkins有没有打包编译



1.什么是jenkins

 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

2.为什么使用jenkins

jenkins_第1张图片

 注意:jenkins本身没有编译打包的功能,集成maven完成编译和打包, jenkins本身不会拉取gitee远程仓库的代码,集成git从远程仓库拉取代码, git本身也不会运行jar,需要集成jdk来运行jar

3.安装jenkins

3.1.准备条件

3.1.1.安装jdk下载jdk,上传至linux并解压

3.1.2.配置环境变量

配置/etc/profile的内容
############JDK
export JAVA_HOME=/usr/local/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

3.1.3.使配置环境变量生效

source /etc/profile

3.1.4.检测java环境信息

javac

3.2.打开虚拟机

jenkins_第2张图片

 3.3.将把jenkins的war放入虚拟机中

 3.4.运行jenkins

nohup java -jar /usr/local/jenkins.war  --httpPort=8777 --httpsPort=8778 > /usr/local/jenkins.log 2>&1 &

-- nohup:如果虚拟机休眠时不关闭jenkins
-- >: 启动时生成的日志放入
-- &: 后台运行

3.5.访问浏览器

http:自己的ip地址:8777

jenkins_第3张图片

 3.6.查看密码

 使用tail/cat 命令查看启动日志,日志中会输出jenkins密码

jenkins_第4张图片

 3.7.输入密码进入

jenkins_第5张图片

 自己运行,比较慢,稍等一会

jenkins_第6张图片

jenkins_第7张图片

jenkins_第8张图片

jenkins_第9张图片

jenkins_第10张图片

3.8.安装成功之后

jenkins_第11张图片

4.修改密码

4.1.点击用户列表

jenkins_第12张图片

4.2. 点击admin

jenkins_第13张图片

 4.3.点击设置

jenkins_第14张图片

 4.4.修改密码

jenkins_第15张图片

4.5.修改密码之后,重新登录

jenkins_第16张图片

4.6.登录成功之后

jenkins_第17张图片

5.jenkins集成jdk

5.1.安装jdk

5.1.1.查看有没有安装jdk

cat /etc/profile

5.1.2.安装jdk

在jenkins所在的服务上安装jdk并配置环境变量。
【1】解压jdk软件
 [2]vi /etc/profile
    export JAVA_HOME=JDK的安装路径
    export PATH=$PATH:$JAVA_HOME/bin
 [3] source /etc/profile  

5.2. 点击控制面板

jenkins_第18张图片

5.3.点击设置

jenkins_第19张图片

 jenkins_第20张图片

5.4.点击全局配置

jenkins_第21张图片

5.5.点击新增jdk

jenkins_第22张图片

5.6.点击保存

6.集成git

6.1.在jenkins所在的服务器上安装git软件

yum install -y git

jenkins_第23张图片

6.2.查看是否安装成功git

git --version

6.3. 点击设置

jenkins_第24张图片

 6.4.点击全局配置

jenkins_第25张图片

 6.5.配置

jenkins_第26张图片

6.6保存

6.7.测试jenkins会不会从gitee拉取代码

6.7.1.打开git

 6.7.2.在git中新建一个仓库

jenkins_第27张图片

 6.7.3.修改一下文件的内容并提交

jenkins_第28张图片

6.7.4.新建item

jenkins_第29张图片

 jenkins_第30张图片

 jenkins_第31张图片

 6.7.5.报错

jenkins_第32张图片

 错误的原因,因为你的仓库是私有的,需要你的账号和密码

6.7.6.添加

jenkins_第33张图片

 jenkins_第34张图片

 6.7.7.添加成功之后

jenkins_第35张图片

6.7.8.build

jenkins_第36张图片

6.7.9.build完成之后

jenkins_第37张图片

 6.7.10.点击控制台输出

jenkins_第38张图片

jenkins_第39张图片

jenkins_第40张图片

7.Maven集成

7.1.将winds下的maven拉取到Linux上

7.2.解压maven

tar -zxvf 要解压的名称

7.3.配置环境变量

vi /etc/profile

jenkins_第41张图片

7.4.使环境变量生效

source /etc/profile

7.5.查看安装情况

mvn -versio

jenkins_第42张图片

7.6.修改maven的镜像

7.6.1.进入maven里面

 cd maven3.8.6/

7.6.2.进入到conf里

cd conf/

7.6.3.进入到settings.xml

vi settings.xml

7.6.4.修改镜像

找到自己Windows下的maven的镜像,将Linux里面的镜像删除,将Windows下的maven镜像复制到Linux里

jenkins_第43张图片

 7.6.5.修改本地仓库的地址

jenkins_第44张图片

7.7.登录到jenkins

jenkins_第45张图片

7.8.点击设置和全局配置

jenkins_第46张图片

7.9.配置maven

jenkins_第47张图片

7.10.安装maven插件

7.10.1.点击设置和插件7.

jenkins_第48张图片

7.10.2搜索maven插件,然后选中,直接安装

jenkins_第49张图片

 注意:下载失败要重新下载,直到安装maven

7.11.测试maven

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

7.11.1.在gitee上新建一个仓库

jenkins_第50张图片

7.11.2.idea中创建一个maven工程

7.11.3.将maven项目上传到gitee上

(1).先将项目设置成本地项目

jenkins_第51张图片

(2)上传到远程仓库 (步骤省略)

jenkins_第52张图片

 7.11.4.Jenkins拉去项目

(1)新建任务

jenkins_第53张图片

jenkins_第54张图片 jenkins_第55张图片

(2)点击一下

jenkins_第56张图片

 我们能可以看到成功了

jenkins_第57张图片

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

8.1.jenkins中安装gitee插件

jenkins_第58张图片

8.2.修改任务项目的设置

jenkins_第59张图片

jenkins_第60张图片jenkins_第61张图片

8.3.内网穿透

jenkins_第62张图片

jenkins_第63张图片

jenkins_第64张图片

8.4.在Jenkins上点击保存, 在gitee上点击添加

jenkins_第65张图片

 

8.5.测试

jenkins_第66张图片

测试后在Jenkins上,你会看见她自动打包了

jenkins_第67张图片

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

在企业中jenkins所在的服务器和我们项目运行时的服务器应该不是同一台机器,jenkins编译打包好的软件在jenkins所在的服务器

9.1.前提

9.1.1.克隆一下虚拟机,修改一下ip

修改IP在以前的笔记中

jenkins_第68张图片

9.1.2.链接,看一下javac的命令管用吗?

jenkins_第69张图片

9.2.找到我们要复制的jar包

9.3.将我们jar包复制到另一台虚拟机上

scp 文件名  root@远程ip:/远程的目录

jenkins_第70张图片

9.4.测试一下有没有复制成功

去另一台虚拟机上去看一下有没有

9.5.在当前的虚拟机登录另一台虚拟机

ssh 另一台虚拟机的IP

jenkins_第71张图片

远程登录其他服务器时,需要手动的输入密码,能否设置免密登录  

9.6.退出登录

 exit

jenkins_第72张图片

10.如何设置免密

10.1.在jenkins所在的服务器上输入如下命令

ssh-keygen -t rsa---敲回车

jenkins_第73张图片jenkins_第74张图片

10.2.接下来需要将公钥导入到认证文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

10.3.给对应文件授权

10.3.1.如果希望ssh公钥生效需满足至少下面两个条件

  • .ssh目录的权限必须是700 r4 w2 x1

  • .ssh/authorized_keys文件权限必须是600

10.3.2.给对应文件授权

 chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

10.4.将当前虚拟机的公钥复制到另一台虚拟机上

10.4.1.在另一台虚拟机上创建一个文件放入公钥

mkdir ~/.ssh

10.4.2.在当前虚拟机上输入命令

scp -p ~/.ssh/id_rsa.pub root@另一台虚拟机的ip:路径

scp -p ~/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys

10.4.3.登录另一台虚拟机

ssh 另一台虚拟机的ip

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

jenkins_第75张图片

#!/bin/bash

echo "部署的目录和项目名称"---输出的话
DIR="/data/app" ---把jar包放到那个目录下
projectName="my-boot"  jar包工程名字

echo "待部署的应用服务器,可多台用@分割"
server_ips="192.168.74.154" --准备部署到那个服务器的IP
for server_ip in ${server_ips[@]}
do

echo "ssh连接进行备份操作"
ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} < 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} < mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar

EOF

done

echo "success"

11.1.测试

11.1.1.随便修改一下idea项目

11.1.2.上传的远程仓库

jenkins_第76张图片

 11.1.3.查看jenkins

jenkins_第77张图片

12. 编写启动脚本

12.1.创建脚本

vi 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

jenkins_第78张图片

 12.2.修改权限

chmod 777 start.sh

 12.3.执行

./start.sh

jenkins_第79张图片

13.编写关闭脚本

13.1.创建关闭的脚本

vi stop.sh

#!/bin/bash

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

jenkins_第80张图片

13.2.修改权限

chmod 777 stop.s

13.3.关闭

./stop.sh

 13.4.查看一下是否真的关闭

ps -ef|grep my-boot.jar

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

14.让jenkins自己启动和关闭

jenkins_第81张图片

jenkins_第82张图片

sh $DIR/${projectName}/stop.sh
sh $DIR/${projectName}/start.sh

14.1.测试

14.1.1.修改idea里面的代码(省略)

14.1.2.提交到远程仓库(省略)

14.1.3.查看jenkins有没有打包编译

你可能感兴趣的:(jenkins,gradle,java)