Jenkins去GitLab拉取Java代码自动打包
jenkins的部署
一、部署git
1)先检查系统是否已经自带了git,如果有,就卸载
$ rpm -qa | grep git && rpm -e git --nodeps
2)开始安装git所需要的依赖包
$ yum -y install curl-devel gettext-devel expat-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
3)下载git源码包并安装
$ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
$ tar xvf git-2.9.5.tar.gz -C /usr/local/src
$ cd /usr/local/src/git-2.9.5/
$ make prefix=/usr/local/git all
$ make prefix=/usr/local/git install
4)修改环境变量
$ vim /etc/profile
export PATH=$PATH:/usr/local/git/bin
$ source /etc/profile
5)测试
$ git --version
git version 1.8.3.1
二、部署jdk环境
2.1. 检测是否有自带的jdk环境,如果有就卸载
$ rpm -qa | grep jdk && yum -y remove java*
2.2. 下载JDK
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
#wget --no-check-certificate --no-cookies --header "Cookie直接下载JDK,避免用户验证"
$ tar xvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
$ mv /usr/local/jdk1.8.0_181 /usr/local/java
2.3. 修改环境变量
$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/git/bin
$ source /etc/profile
2.4. 测试
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
三、部署Maven
3.1. 下载maven包
$ wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
3.2. 解压Maven
$ tar xvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
$ mv /usr/local/apache-maven-3.5.4 /usr/local/maven
3.3. 修改环境变量
$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:/usr/local/git/bin
$ source /etc/profile
3.4.测试
$ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.26.2.el7.x86_64", arch: "amd64", family: "unix"
四、部署Tomcat
4.1. 下载Tomcat
$ wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz
4.2. 解压Tomcat
$ tar xvf apache-tomcat-9.0.16.tar.gz -C /usr/local
$ mv /usr/local/apache-tomcat-9.0.16 /usr/local/tomcat
4.3. 修改环境变量
$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export MAVEN_HOME=/usr/local/maven
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:/usr/local/git/bin
$ source /etc/profile
4.4. 增加熵池大小,快速启用tomcat
$ yum -y install rng-tools
$ cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
$ vim /etc/systemd/system/rngd.service
ExecStart=/sbin/rngd -f -r /dev/urandom
$ systemctl daemon-reload
$ systemctl restart rngd
4.5. 编写tomcat的启动脚本
$ vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java" //tomcat启用时需要识别JAVA_HOME
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
[root@jenkins ~]# chmod 600 /usr/lib/systemd/system/tomcat.service
[root@jenkins ~]# systemctl daemon-reload
5.6. 测试
$ systemctl start tomcat
$ ss -antp | grep java
LISTEN 0 100 :::8009 :::* users:(("java",pid=5717,fd=54))
LISTEN 0 100 :::8080 :::* users:(("java",pid=5717,fd=49))
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=5717,fd=107))
五、部署jenkins
5.1. 下载jenkins.war包
$ wget http://mirrors.jenkins.io/war/latest/jenkins.war
5.2. 安装jenkins(放到tomcat的webapps目录下,启用tomcat即可)
$ cp jenkins.war /usr/local/tomcat/webapps
5.3. 测试
$ systemctl restart tomcat
5.4. 修改首页
<Context path="" docBase="/usr/local/tomcat/webapps/jenkins/" debug="0"/>


六、配置jenkins
6.1. jenkins的安装

$ cat /root/.jenkins/secrets/initialAdminPassword
5e94c58bcd6a4fc5b7f49675c39a44bf
6.1.1. 报错

解决办法:
$ find / -name "hudson.model.UpdateCenter.xml"
/root/.jenkins/hudson.model.UpdateCenter.xml <?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites> https修改为http
6.2. 点击安装推荐的插件

6.3. 等待插件下载完成

6.4. 设置管理员账号密码


6.5. 配置访问Jenkins的URL


6.6. Start Using Jenkins
输入账号密码登录
6.7. jenkins插件的安装


6.7.1 安装SSH Publish Over SSH 用于ssh连接的

6.7.2 安装GitLab 为git客户端从git主库取代码


6.7.3. 安装Maven Integration plugin 编译打包


6.8. jenkins系统设置


6.8.1. 配置jdk根目录

6.8.2. 配置git命令的绝对路径


6.8.3. 配置Maven根目录


Apply and Save
6.8.4. 配置ssh


$ ssh-copy-id -i 192.168.1.10 //后端gitlab的ip地址
$ cat .ssh/id_rsa


Apply and Save
Hostname为后端tomcat服务器的ip地址
Remote Directory ssh过去后在机器的什么目录下 点击Test Configuration 显示Success则表示成功----> Apply and Save
6.9. 在GitLab服务器上获取Token
6.9.1. 创建用户获取Token

6.10. jenkins服务器上配置Gitlab

七、创建一个Jenkins Job
7.1. 创建job

7.2. 生成访问GitLab的ssh秘钥

从Gitlab上以SSH的方式拉取或提交代码需要用到这个SSH秘钥,哪台机器需要从GitLab上拉取代码,就在哪台机器上生成SSH key
$ ssh-keygen -t rsa -C "<添加一些注释>" -b 4096
$ cat .ssh/id_rsa.pub
7.3. 配置Job





7.4. 配置Job的构建触发器
选择“构建触发器”,勾选“Pull SCM”,这个选项会每隔一段时间检查一下GitLab仓库中代码是否有更新,有的话就执行构建操作。日程表如何设置,在这个输入框下面有说明。
7.5. 配置打包

7.6.打包完成之后的动作

$ mkdir /jenkins/{jar,sh} -p
$ vim /jenkins/sh/web.sh
cp /jenkins/jar/*.jar /jenkins
echo successfully > /root/jenkins.log
$ chmod +x /jenkins/sh/web.sh
7.6.1. 报错

脚本没有执行权限,需要给脚本授权
$ chmod +x 脚本
Jenkins去GitLab拉取Java代码自动打包的更多相关文章
- Jenkins + Maven + Ansible + Tomcat 实现JAVA代码自动部署
自动部署过程: jenkins从svn拉取代码,调用maven去打war包,用ansible去解压war包,最后重启tomcat. 前情回顾:在前面的文章我的环境已经有Jenkins+ansible ...
- Jenkins教程(三)添加凭据与流水线拉取Git代码
前言 本文旨在配置凭据.使用Git仓库中的Jenkinsfile与使用声明式流水线拉取Git代码 使用SVN等其他版本控制工具,请参考使用Pipeline-Syntax生成对应代码块 凭据(crede ...
- 【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx
↑开局一张图,故事全靠编↑ 前言 打开搜索引擎输入『Copy攻城狮』,发现最新的一条记录已经是去年的4月,意味着我又有一年时间没有再总结成长了.习惯了“温水煮青蛙”的日子,无论是经验水平还是薪资收入, ...
- 【Git】4、创建代码仓库,HTTP、SSH拉取远端代码
拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1.创建远程代码仓库 2.创建仓库 3.进入仓库 4.HTTP(S)获取远程仓库 首次拉取 更 ...
- Java代码自动部署
注:本文来源于<it小熊> [ ①Java代码自动部署-总结简介] 代码部署是每一个软件开发项目组都会有的一个流程,也是从开发环节到发布功能必不可少的环节.对于Java开发者来说,Java ...
- git 拉取远程代码
git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...
- git使用命令行拉取远程代码仓库中的分支至本地
1.本地创建文件夹用于存放拉取的代码 2.执行git init初始化文件夹 3.与远程代码仓库建立连接 git remote add origin git@github.com.wuylin/noth ...
- 开发环境,eclipse编辑器java代码自动提示
Eclipse+ADT+Android SDK 搭建安卓开发环境 eclipse编辑器java代码自动提示 window-->Preferences-->JAva-->Content ...
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...
随机推荐
- 温习排序算法(基于C指针)
以前学过的数据结构课,貌似已经忘得一干二净了,偶然又翻起,书中最后一章详细介绍了7种排序算法,现在对其中4种做个总结.(为啥只总结4种,当然是因为偷懒,只想总结简单又常用的!) 先贴一张排序分类图: ...
- 《图解HTTP》读书笔记(一:网络基础TCP/IP)
好书什么时候开始读都不晚.作为一个测试人员,是一定要掌握一些网络的基础知识的.希望能够边读书边在这里记录笔记,便于加深理解以及日后查阅. 一.TCP/IP协议族 计算机与网络设备要互相通信,双方必须基 ...
- MySQL主从复制延迟的问题 #M1002#
MySQL主从复制延迟的问题 #M1002# https://mp.weixin.qq.com/s/NwFGER-qn2xQ5TnG-php1Q 更为糟糕的是,MySQL主从复制在大事务下的延迟.同样 ...
- 一位数组的最大子数组(debug版)
package 数组; import java.util.Arrays; import java.util.Scanner; public class Sum { public static void ...
- C++模板的要点
1.函数模板与普通函数的区别: 普通函数可以进行自动类型转化,而函数模板不可以. 举个例子 //函数模板 template<class T> void show(T a,T b){ cou ...
- windows----------火狐浏览器访问所有https网站都显示链接不安全解决办法
1.如有以下情况,点右边的“高级”,看看自己的错误码是否为SEC_ERROR_UNKNOWN_ISSUER 2.在地址栏键入"about:config" 点击“我了解此风险” 3. ...
- Git 撤销到某个版本的代码
Git checkout 版本号 文件名带路径的
- 重装@angular/cli reason: write EPROTO 139955972261696:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:252:
前几天不小心卸载了 angular@cli,然后重装的时候发现,一直报错.如下: ××××××××@××××ln622653:/$ npm install -g @angular/clinpm ERR ...
- 在sql中case子句的两种形式
case子句,在select后面可以进行逻辑判断. 两种形式:判断相等.判断不等 一.判断相等的语法: case 列名 when ... then ... when ... then ... el ...
- World is Exploding (容斥 + 统计)
题意:满足题目中的式子,a < b && c < d && Va < Vb && Vc > Vd 思路:先求不讨论位置重合的情况 ...

