Linux安装jenkins

目录

将安装包传入linux

执行安装命令

他会自动生成密码,在日志文件内,日志文件路径在安装命令中 。

修改密码

在jenkins所在的服务上安装jdk并配置环境变量。

集成git

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

 

集成maven

在jenkins安装的机器上安装maven

修改maven的本地仓库和远程仓库 

配置远程拉取

配置ssh免密登录

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

 创建一个启动脚本自动启动项目

 创建关闭脚本

配置脚本自动执行


 

将安装包传入linux

执行安装命令

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

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

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

访问后首先进入此界面,等待他准备完成。 

他会自动生成密码,在日志文件内,日志文件路径在安装命令中 。

 

输入密码后如果出现一直停在加载页面,就参考此文章,更换镜像源。

https://blog.csdn.net/hiXavier/article/details/103662275https://blog.csdn.net/hiXavier/article/details/103662275

 创建用户,如果选择使用admin继续,那下次登录密码还是日志里的

修改密码

 

在jenkins所在的服务上安装jdk并配置环境变量。


【1】解压jdk软件
 [2]vi /etc/profile
    export JAVA_HOME=JDK的安装路径
    export PATH=$PATH:$JAVA_HOME/bin
 [3] source /etc/profile    

 

 

集成git

在jenkins所在的服务器上安装git软件
yum install -y git

查看是否安装git
git --version

位置和jdk一致

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

   

 

 

 

集成maven

在jenkins安装的机器上安装maven

我实在虚拟机上安装的,所以先把安装包传入虚拟机

 解压

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

解压完毕 

  重命名(此步骤可以不执行)

 配置环境变量

 

 刷新配置文件

测试mvn

修改maven的本地仓库和远程仓库 

找到解压文件下的conf目录下的settings.xml文件 

配置本地仓库

 配置远程下载路径 

保存退出

配置jenkins上的maven

安装maven插件

 

安装getee,用来远程拉取,这里已经装过了 ,所以搜不到

测试

 手动拉取测试

 这里下拉时出错了原因

 pom包里这一句他不识别,删掉

 还是报错,发现

 再次拉取

 

配置远程拉取

这里用的是getee仓库,需要下载getee仓库依赖,前面已经下载过了。

修改项目配置 

 选中此框

 

到穿透软件配置

 

到getee配置

 

 成功

我们上传代码到getee后jenkins会自动拉取

配置ssh免密登录

在jenkins所在的机器上生成公钥

命令:

ssh-keygen -t rsa

将公钥导入到认证文件中

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

ssh公钥生效至少满足两个条件

.ssh目录权限必须是700 

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

 给对应的文件授权

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

把公钥复制到另一台机器上

scp -p ~/.ssh/id_rsa.pub root@192.168.92.242:/root/.ssh/authorized_keys 

测试:

ssh 地址

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

配置jenkins脚本

#!/bin/bash

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

echo "待部署的应用服务器,可多台"
server_ips="192.168.92.242"
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"

 

 将代码放入

保存后测试:

自动拉取后进入此处出现此文字则成功

 创建一个启动脚本自动启动项目

创建文件

 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

 修改权限

 

 创建关闭脚本

vi stop.sh

#!/bin/bash

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

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

配置脚本自动执行

在jenkins中配置

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

先关闭,在开启 

上传到gitee上测试代码,他自动拉取,自动部署。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值