Jenkins入门使用

Jenkins入门使用

1先安装jdk才能运行jenkins

shell 复制代码
yum install -y java-1.8.0-openjdk.x86_64

2 安装jenkins,运行,进行端口绑定,启动jenkins

shell 复制代码
docker search jenkins
docker pull jenkins/jenkins
docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins
docker start jenkins

3查看运行状态,

shell 复制代码
docker ps

4根据CONTAINER ID读取运行日志查看初始密码

shell 复制代码
docker logs 127e1b3f1587

复制上面的密码,通过浏览器访问服务器ip:8080,粘贴上面的密码。使用按照推荐安装插件,进行初始化安装

安装完成后建立管理员账号。

新建一个任务,

输入名称选择构建一个自由风格的软件项目

复制自己代码的git地址

私人仓库添加添加密码作为凭证进行访问

选择我们想要构建的分支,点击下面的save保存

打开-》全局工具

下载maven

设置maven构建项目,再次打开项目的配置界面找到下图

选择刚刚下载的maven,设置构建执行目标,pom路径设置父级pom文件路径

在系统管理-》插件管理-下载插件(我已经下载过了所以在Installed plugings搜索)应该在Avaliable plugings搜索

在系统管理下设置ssh远程服务

再次打开项目的配置界面,选择下图

设置执行的脚本文件,这里设置的就是本地服务器所以直接执行的本地的jar包,可以设置远程端的服务器,将本地打的包放到其他服务器运行。

脚本:

!/bin/bash

APP_NAME="项目名.jar"

LOG_NAME="/var/jenkins_home/logs/项目名.log"

TARGET_DIR="/var/jenkins_home/jar"

SOURCE_JAR="/var/jenkins_home/workspace/任务名/项目文件夹/项目文件夹/target/$APP_NAME"

#创建必要目录

mkdir -p $TARGET_DIR

mkdir -p (dirname LOG_NAME)

#复制文件

if -f $SOURCE_JAR ; then

cp SOURCE_JAR TARGET_DIR

echo "文件已复制到 $TARGET_DIR"

else

echo "错误:源文件 $SOURCE_JAR 不存在"

exit 1

fi

#检测程序是否运行

function is_exist() {

pid=(ps -ef \| grep APP_NAME | grep -v grep | awk '{print $2}')

if -z "$pid" ; then

return 1 # 不存在

else

return 0 # 存在

fi

}

if is_exist; then

echo "检测到已启动的程序,pid 是 ${pid}"

kill -9 $pid

echo "程序已停止"

else

echo "程序未运行"

fi

#重新启动程序

if is_exist; then

echo "程序仍在运行,无法重新启动"

else

source /etc/profile

BUILD_ID=dontKillMe

nohup java -Xms300m -Xmx300m -jar TARGET_DIR/APP_NAME > $LOG_NAME 2>&1 &

echo "程序已重新启动..."

fi

注:项目名要和我们在pom的build标签下的项目名写的一样才行

相关推荐
数智化管理手记38 分钟前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
Shell运维手记1 小时前
ARP 协议超详细讲解(适合网工考试 / 运维理解)
运维·网络·网络协议·智能路由器
西安景驰电子2 小时前
PCIe 授时卡原理及应用
运维·服务器·windows·单片机·嵌入式硬件·fpga开发
huainingning3 小时前
华三瘦AP切换为胖AP并配置无线功能
运维·网络·网络协议·tcp/ip
外滩运维专家3 小时前
十几台服务器要改配置,别再一台台 SSH 了
运维
冷莫溪4 小时前
Zabbix——认识及部署Zabbix(基于Rocky9.7)
linux·运维·php·zabbix
风曦Kisaki4 小时前
Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
linux·运维·笔记·docker·云原生·容器·kubernetes
图件制作GIS,储量计算4 小时前
未来已到,抓住机遇
运维·服务器
CIO_Alliance4 小时前
AI+iPaaS解决方案:跨系统业务流程自动化助力企业AI化转型
运维·人工智能·自动化
dok125 小时前
Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》(4) devicefile 设备号相关
linux·运维·服务器