运维随录实战(5)之centos搭建jenkins

一,搭建jenkins准备

下载安装jdk环境 -》版本 jdk11

下载安装maven环境 -》版本 maven 3.8.8

git -》版本 1.8.3.1 yum install git

jenkins安装版本:2.414.3

下载地址:https://get.jenkins.io/war-stable/2.414.3/jenkins.war

注:jenkins版本与jdk版本有一定的对应关系,版本不对应可能导致后面虽然安装成功了,但是使用会出问题的情况。另外,jenkins的版本最好在2.38以上,以防有些插件无法进行安装下载

二,相关命令

# 设置jdk、maven等环境变量
vi /etc/profile
# 生效
source /etc/profile

# 启动jennkins
nohup java -jar /data/software/jenkins.war  --httpPort=8777  -Djava.awt.headless=true > /data/software/jenkins.log 2>&1 &
# 查看jenkins日志,注 需要在jenkins.log所在目录下执行
tail -222f jenkins.log 

# 设置jenkins 下载中央库,在.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 

# 根据端口查看进程id
lsof -i :8777
或者 netstat -tunlp |grep jenkins
# 杀掉进程
kill -9 xxx

# 开启防火墙8777端口
$ firewall-cmd --zone=public --add-port=8777/tcp --permanent

# 使配置生效
$ firewall-cmd --reload

# 防火墙扩展命令如下(云服务直接操作阿里云安全组即可)
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld 

(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
  命令含义:
  –zone #作用域
  –add-port=9200/tcp #添加端口,格式为:端口/通讯协议
  –permanent #永久生效,没有此参数重启后失效
  注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent

注:jenkins的数据一般在.jenkins所在目录下,即 如果你首次运行了jenkins.war并且已经登录进行下载安装插件了,但是由于插件下载安装出现了问题,或者其他原因,你想要重装jenkins,除了停止jenkins.war程序并杀掉相应程序外,你还需要将.jenkins整个目录数据删掉,这样你在重新启动程序后才会重新进入到下载安装插件的环节。

三,安装插件

除了安装默认的插件之外,一般还需要安装如下:

Git Parameter、NodeJS、SonarQube Scanner、Maven Integration、Workspace Cleanup、Credentials Binding

注:某些插件安装不了大多数是因为jenkins版本问题导致,可能需要升级解决。

四,全局配置

jdk、maven、git、jenkins配置

配置git:

b266e8b20b5d4e2e83db7e1884556bc8.png

注:这里填写git后会自动匹配

配置jdk:

3ecaced6ac66478f809c814940132498.png

配置maven:

1f06b3d4c5a14ea08f4065d6fb6acfc2.png

设置jenkins下载:

进入 Manage Jenkins -》 Manage Plugin -> Advanced 最下面有 Update Site 设置为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

d00dedcb2f144e0d8a924fe70fb44c0c.png

设置凭证:

6a3f3078dead4abd9cb6d5b7c035a943.png

注:这里设置的是github/gitlab登录的账号密码

当然也可以使用公钥方式

五,从github或者gitlab拉取代码

部署SpringBoot项目,选择 pom方式新建任务

源码管理:

bfe8bd97fdb54d19a754fc4caf124ec7.png

需要注意的是这里填写的url指的是 github浏览器中的项目地址

六,将拉取的代码上传到另一台服务器上进行发布

scp -p file root@xxxxx: targetFile

scp -p ~/.ssh/id_rsa.pub root@1.94.63.103:/home/admin/.ssh/authorized_keys

在jenkins excute shell中编写脚本:

#!/bin/bash

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

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

echo "ssh连接进行备份操作"
ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} <<EOF
mkdir -p $DIR/backup/${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
sh $DIR/${projectName}/stop.sh
sh $DIR/${projectName}/start.sh
EOF

done

echo "success"

如果在传递jar中报错:SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!那么,需要在jenkins服务器中执行以下脚本:

ssh-keygen -R 1.94.63.103 # 由于之前重装过系统,当执行新的ssh命令后需要清掉之前的缓存

目标服务器上在项目目录下准备两个脚本:

start.sh

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

APP_ID=sp-server
APP_DIR="/data/app"

nohup java -Dspring.profiles.active=dev -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

stop.sh

#!/bin/bash

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

部署vue项目:

在目标部署服务器上安装nodejs、git等

# 安装nodejs

# 安装git
yum install git

设置git仓库:

396ab51ae75e4d02a42dbec94a6a2481.png

编写shell部署脚本:

29a4852f87f24098aaebad78037e4b32.png

#!/bin/bash

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

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

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

echo "拷贝项目到目标服务器的tmp目录"
scp -r -oStrictHostKeyChecking=no ${WORKSPACE} root@${server_ip}:/tmp/
scp -r -oStrictHostKeyChecking=no ${WORKSPACE} root@${server_ip}:$DIR/
done

ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} <<EOF
cd /data/app
sh stop.sh
sh start.sh
EOF

echo "success"

其中,start.sh脚本

5e296a63b836434c87a184c3f229a303.png

#!/bin/bash

cd ./sps_web

npm install

echo "开始启动程序"

nohup npm run dev > /dev/null 2>&1 &

echo "启动成功!"

stop.sh脚本

#!/bin/bash

cd ./sps_web/

# 指定要杀死的端口号
port=9527

# 查找使用指定端口的进程ID(PID)
pid=$(lsof -i :$port -t)

if [ -n "$pid" ]; then
    # 杀死进程
    kill $pid
    echo "进程 $pid 已被杀死"
else
    echo "未找到使用端口 $port 的进程"
fi

参照:

https://www.it235.com/%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/jenkins.html#springboot%E9%A1%B9%E7%9B%AE%E5%8F%91%E5%B8%83

 

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CentOS搭建Jenkins可以按照以下步骤进行操作: 1. 首先,需要将Jenkins的库添加到yum库中。可以通过使用以下命令将Jenkins的库文件下载到/etc/yum.repos.d/目录中: ``` wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo ``` 2. 然后,需要导入Jenkins官方的GPG密钥,以确保软件包的完整性和安全性。可以使用以下命令导入密钥: ``` rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key ``` 3. 安装Jenkins。可以使用以下命令安装Jenkins: ``` yum install -y jenkins ``` 4. 安装成功后,Jenkins将作为一个守护进程随系统启动。系统会创建一个名为"jenkins"的用户来运行该服务。如果需要更改服务所有者,还需要相应地更改/var/log/jenkins、/var/lib/jenkins和/var/cache/jenkins的所有者。 5. 启动Jenkins服务。可以使用以下命令来启动、停止或重启Jenkins服务: ``` service jenkins start/stop/restart ``` 6. 默认情况下,Jenkins运行在8080端口。在浏览器中直接访问服务器的IP地址或域名,加上8080端口,即可开始配置Jenkins服务。 总结一下,搭建Jenkins的具体步骤包括:添加Jenkins库到yum库、导入官方GPG密钥、安装Jenkins、启动Jenkins服务,并在浏览器中访问相应的端口进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [centos搭建Jenkins](https://blog.csdn.net/weixin_44158401/article/details/113512155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Centos搭建jenkins](https://blog.csdn.net/qq_25591191/article/details/116204748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loren_云淡风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值