使用jenkins自动发布代码

环境 IP地址 服务
Centos7 192.168.100.203 geilab
Centos7 192.168.100.204 jenkins
Centos7 192.168.100.205 tomcat

一.搭建与项目拓扑图

使用jenkins自动发布代码_第1张图片

1.先使用jenkin创建一个密钥

使用jenkins自动发布代码_第2张图片使用jenkins自动发布代码_第3张图片

 使用jenkins自动发布代码_第4张图片

 使用jenkins自动发布代码_第5张图片

 root公钥在gitlab, root私钥在jenkins,这样jenkins就可以直接拉取gitlab 上的代码。全局凭证(不受限制)

2.查看公钥并部署到Gitlab

 使用jenkins自动发布代码_第6张图片

3.创建一个自己的项目  

使用jenkins自动发布代码_第7张图片

 

 往下翻

使用jenkins自动发布代码_第8张图片

 我在这里报了个错,因为我没有master分支,将master切换成main就可以了

 使用jenkins自动发布代码_第9张图片

 4.开始构建一下项目

使用jenkins自动发布代码_第10张图片

查看构建成功的效果:

 5.将项目拉下来了,开始发布验证

新添加一个服务器安装Apache

Centos7 192.168.100.205 Apache

 5.1,继续进行配置项目

使用jenkins自动发布代码_第11张图片

 使用jenkins自动发布代码_第12张图片

 

 使用jenkins自动发布代码_第13张图片

 记得需要免密登录

使用jenkins自动发布代码_第14张图片

 但是会报错!!!!!!!!!!!!-------------解决方法

使用jenkins自动发布代码_第15张图片

另一种解决方法

使用jenkins自动发布代码_第16张图片

 二.jenkins自动安装发布--只要有更新就发布

安装一个可以生成随机码的插件     

需要安装的插件:Gitlab Hook Plugin (之前已经安装过)、Build Authorization
Token Root和 Build Token Trigger

然后随机生成一个

[root@MiWiFi-R4CM-srv bei-da]# openssl rand -hex 12
86323d5d0f555250581435b0

 

 然后开始配置jenkins触发器

 使用jenkins自动发布代码_第17张图片

 然后保存

开始配置GItlab下的网络钩子

切换root用户进行修改,允许网络钩子访问

使用jenkins自动发布代码_第18张图片

 再换回来

使用jenkins自动发布代码_第19张图片

然后开始测试:(如果报错请检查安装包)

使用jenkins自动发布代码_第20张图片

 效果讲解:

1.修改文档内容,保存之后就会发现,原来的网页自动切换成了自己刚刚修改的

使用jenkins自动发布代码_第21张图片

 

 刷新之后

 使用jenkins自动发布代码_第22张图片

三.使用分支进行版本回滚

分支讲解

我们在公司里面一般使用master作为主分支,开发人员使用开发分支,当开发人员开发完代码以后,会合并到 master主分支,进行上线部署服务,我们还可以使用测试分支,当开发人员写完代码以后,可以合并到测试分支,进行测试,测试成功以后,合并到master分支进行生产环境部署,当然为了安全部署,防止线上代码 BUG,我们可以创建回滚分支,当我们部署的新版本的软件出现.问题,可以马上使用回滚分支进行回滚到上一个稳定版。

(创建-删除-切换)分支的命令

创建分支:git branch bb

切换分支:git checkout bb 

创建加切换:git checkout -b Chengzhang

删除本地分支: git branch -d Chengzhang

删除远程分支: git push origin --delete Chengzhang 

1.先创建两个不同分支,文件名称是相同的,但是内容不同

[root@MiWiFi-R4CM-srv bei-da]# git branch master
[root@MiWiFi-R4CM-srv bei-da]# git branch
* main
  master

使用jenkins自动发布代码_第23张图片

 使用jenkins自动发布代码_第24张图片

 2.现在master相当于版本的更新,而main是原来的版本,但是master文件出现问题,需要进行回滚,所以编写一个脚本

cd /opt
git clone -b master [email protected]:chengzhang/bei-da.git  ####将main文件克隆到opt
cd bei-da
scp ./bei-da.html [email protected]:/var/www/html/index.html

我觉得有必要讲解一下

相当于我们自己默认有三个分支,一个是主分支,一个是备用分支,一个是测试分支,

正常流程就是:

1.我们将自己的文件扔到测试分支,如果没有问题就开始向主分支部署

2.如果到达了主分支出现问题了,我们就立即将备用分支的数据把主分支覆盖掉,这个时候主分支的数据依然还在,所以我们要撤掉主分支,,,但是我感觉,既然有备用分支了那为什么不直接启用备用分支,而是用备用分支覆盖???

 四.jenkins发布Tomcat项目

1.先创建一个Tomcat项目

 使用jenkins自动发布代码_第25张图片

2.在jenkins 上安装JDK/Maven

https://maven.apache.org/download.cgi

maven:就是将开发与的.Java代码,打包成war包,然后在将打包成的war包,部署到tomcat上,供客户端访问
Project 0bject Model,项目对象模型。通过xml格式保存的pom.xml文件。该文件用于管埋:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的衣赖关系等等。该文件是由开

 JDK已经安装过了,所以只需要安装Maven

[root@MiWiFi-R4CM-srv ~]# tar xf apache-maven-3.8.1-bin.tar.gz 
[root@MiWiFi-R4CM-srv ~]# mv apache-maven-3.8.1 /usr/local/maven

配置环境变量

cat > /etc/profile.d/maven.sh << 'EOF'
export M2_HOME=/usr/local/maven
export PATH=$M2_HOME/bin:$PATH
EOF

source /etc/profile

查看版本基本信息

mvn --version

安装nexus

https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.40.1-01-unix.tar.gz

也是正常的解压压缩包,然后放在/usr/local但是会报错只需要1.8的Java

No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be at least 1.8 and at most 1.8.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.

可以将1.8的Java放在/usr/local/下,然后在配置文件指定

INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/bin/java-1

先跳过吧,没讲,因为它可以不装

使用jenkins自动发布代码_第26张图片

 使用jenkins自动发布代码_第27张图片

保存

还需要安装插件:

先将文件传入GitLab

[root@MiWiFi-R4CM-srv bei-da]# git add .
[root@MiWiFi-R4CM-srv bei-da]# git commit -m "add java"
[main 6c9ef87] add java
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 "jenkins\346\265\213\350\257\225java\351\241\271\347\233\256.rar"
[root@MiWiFi-R4CM-srv bei-da]# git push origin main
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:chengzhang/bei-da.git
   c058561..6c9ef87  main -> main

新建一个项目开始验证使用jenkins自动发布代码_第28张图片

 使用jenkins自动发布代码_第29张图片

 然后添加脚本在204

#!/bin/bash

source /etc/profile

scp /var/lib/jenkins/workspace/test/test/test1.war [email protected]:/usr/local/tomcat/webapps

ssh [email protected] "/usr/local/tomcat/bin/shutdown.sh"

sleep 3

ssh [email protected] "/usr/local/tomcat/bin/startup.sh"

 tomcat中也要添加权限

[root@apache ~]# chmod a+x /usr/local/Tomcat/bin/shutdown.sh 
[root@apache ~]# chmod a+x /usr/local/Tomcat/bin/startup.sh 
[root@apache ~]# chmod -R o=rx /usr/local/Tomcat/bin/
[root@apache ~]# chmod -R o=rwx /usr/local/Tomcat/logs/

修改配置文件

vi /usr/local/tomcat/bin/catalina.sh
#!/bin/sh
JAVA_HOME="/usr/local/java"
JRE_HOME="/usr/local/java/jre"

它报了三个错一个是root的错-我将root目录给了777权限 

使用jenkins自动发布代码_第30张图片

第二个报错是---我将java按照目录的形式重新整了一个---/usr/local/java

使用jenkins自动发布代码_第31张图片

使用jenkins自动发布代码_第32张图片

第三:网络问题

使用jenkins自动发布代码_第33张图片

然后开始构建

使用jenkins自动发布代码_第34张图片

使用jenkins自动发布代码_第35张图片

你可能感兴趣的:(大数据)