本次实验是依据一个已经有的项目进行
此地方可以设置历史构建保存数量,防止自己硬盘被撑爆
这里注意一下,scp复制的是jenkin项目的名称的一个文件,但是回滚的的id是gitlab项目中的
case $Status in
Rollback)
echo "-----本次操作为回滚,版本号为$Version-----"
git reset --hard $Version
echo "-----回滚完成,打包中-----"
;;
*)
exit
;;
esac
大小写格式酌情处理
scp /var/lib/jenkins/workspace/bei-da/index.html root@192.168.100.205:/var/www/html/
回滚之前进行打包备份
修改代码:
#!/bin/bash
case $status in
Deploy)
echo "---发布前请进行打包备份---"
echo "status:$status"
BACK_DIR=/var/lib/jenkins/workspace
path="${BACK_DIR}/bak"
if [ -d $path ];
then
echo "The files is already exists"
else
mkdir -p $path
fi
cd ${BACK_DIR}/${JOB_NAME}
#${JOB_NAME}=项目名称(test)
#${BUILD_NUMBER}=第几次构建
tar czf ${JOB_NAME}-${BUILD_NUMBER}.tar.gz *
mv ${JOB_NAME}-${BUILD_NUMBER}.tar.gz ${BACK_DIR}/bak
scp ${WORKSPACE}/* root@192.168.100.204:/var/www/html/index.html
echo "Completin!"
;;
Rollback)
INDEX=*.html
BACK_DIR=/var/lib/jenkins/workspace
cd ${BACK_DIR}/bak
tar xf ${JOB_NAME}-${version}.tar.gz
scp ${BACK_DIR}/bak/${INDEX} root@192.168.100.204:/var/www/html/index.html
rm -rf ${INDEX}
;;
*)
exit
;;
esac
下方的命令叉掉
然后就可以验证了:
备份文件会放在/var/lib/jenkins/workspace/bak
输入不同的数字,以达到恢复到不同状态
SSH远程部署
需要安装插件:我是把能装的全装了,为了保险
在全局配置的最下面
进入一个空白项目,但是有gitlab信息的
开始验证:
Jenkins电子邮件报警
安装
选择之后只要报错就会收到电子邮件
Jenkins远程配置主机
Ansible
yum安装一个ansible
创建一个组
创建一个ansible目录和文件
---
- hosts: 192.168.100.205
tasks:
- name: hahaha
file: path=/data/Chengzhang state=directory
~
在jenkins上创建可以运行的项目
可以开始实践了
----------------------------------------------报错了,但是无伤大雅-----------------------------------------
-------------------------------------------------重启jenkins--------------------------------------------------------
!!!!!!!!!!!!!!!!!!!! 成功!!!!!!!!!!!!!!!!!!!!
jenkins集群
在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故障的隐患也有分散作用,今天就来实战快速搭建Jenkins集群,Jenkins版本是2.346.1;
单个maven会造成压力巨大的问题,所以需要做集群
需要准备:
准备java环境和maven环境
[root@apache ~]# tar xf apache-maven-3.5.4-bin.tar.gz
[root@apache ~]# ls
anaconda-ks.cfg apache-maven-3.5.4 apache-maven-3.5.4-bin.tar.gz jdk-8u333-linux-x64.tar.gz
[root@apache ~]# mv apache-maven-3.5.4 /usr/local/maven
[root@apache ~]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
上传java测试包
[root@bogon bei-da]# git add .
[root@bogon bei-da]# git commit -m "add java"
[main 8ee8cd7] add java
20 files changed, 262 insertions(+)
create mode 100644 test1/.classpath
create mode 100644 test1/.project
create mode 100644 test1/.settings/.jsdtscope
create mode 100644 test1/.settings/org.eclipse.jdt.core.prefs
create mode 100644 test1/.settings/org.eclipse.m2e.core.prefs
create mode 100644 test1/.settings/org.eclipse.wst.common.component
create mode 100644 test1/.settings/org.eclipse.wst.common.project.facet.core.xml
create mode 100644 test1/.settings/org.eclipse.wst.jsdt.ui.superType.container
create mode 100644 test1/.settings/org.eclipse.wst.jsdt.ui.superType.name
create mode 100644 test1/.settings/org.eclipse.wst.validation.prefs
create mode 100644 test1/pom.xml
create mode 100644 test1/src/main/resources/com/Time.java
create mode 100644 test1/src/main/webapp/WEB-INF/web.xml
create mode 100644 test1/src/main/webapp/index.jsp
create mode 100644 test1/target/classes/com/Time.class
create mode 100644 test1/target/classes/com/Time.java
create mode 100644 test1/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF
create mode 100644 test1/target/m2e-wtp/web-resources/META-INF/maven/www.linuxfan.cn.new/test1/pom.properties
create mode 100644 test1/target/m2e-wtp/web-resources/META-INF/maven/www.linuxfan.cn.new/test1/pom.xml
create mode 100644 time.java
[root@bogon bei-da]# git push origin main
Counting objects: 38, done.
Compressing objects: 100% (25/25), done.
Writing objects: 100% (37/37), 5.27 KiB | 0 bytes/s, done.
Total 37 (delta 1), reused 35 (delta 1)
To git@192.168.100.203:chengzhang/bei-da.git
74f3ad4..8ee8cd7 main -> main
[root@bogon bei-da]#