目录
他会自动生成密码,在日志文件内,日志文件路径在安装命令中 。
将安装包传入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
>: 启动时生成的日志放入
&: 后台运行
访问后首先进入此界面,等待他准备完成。
他会自动生成密码,在日志文件内,日志文件路径在安装命令中 。
输入密码后如果出现一直停在加载页面,就参考此文章,更换镜像源。
创建用户,如果选择使用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上测试代码,他自动拉取,自动部署。