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代码自动打包的更多相关文章

  1. Jenkins + Maven + Ansible + Tomcat 实现JAVA代码自动部署

    自动部署过程: jenkins从svn拉取代码,调用maven去打war包,用ansible去解压war包,最后重启tomcat. 前情回顾:在前面的文章我的环境已经有Jenkins+ansible ...

  2. Jenkins教程(三)添加凭据与流水线拉取Git代码

    前言 本文旨在配置凭据.使用Git仓库中的Jenkinsfile与使用声明式流水线拉取Git代码 使用SVN等其他版本控制工具,请参考使用Pipeline-Syntax生成对应代码块 凭据(crede ...

  3. 【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx

    ↑开局一张图,故事全靠编↑ 前言 打开搜索引擎输入『Copy攻城狮』,发现最新的一条记录已经是去年的4月,意味着我又有一年时间没有再总结成长了.习惯了“温水煮青蛙”的日子,无论是经验水平还是薪资收入, ...

  4. 【Git】4、创建代码仓库,HTTP、SSH拉取远端代码

    拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1.创建远程代码仓库 2.创建仓库 3.进入仓库 4.HTTP(S)获取远程仓库 首次拉取 更 ...

  5. Java代码自动部署

    注:本文来源于<it小熊> [ ①Java代码自动部署-总结简介] 代码部署是每一个软件开发项目组都会有的一个流程,也是从开发环节到发布功能必不可少的环节.对于Java开发者来说,Java ...

  6. git 拉取远程代码

    git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...

  7. git使用命令行拉取远程代码仓库中的分支至本地

    1.本地创建文件夹用于存放拉取的代码 2.执行git init初始化文件夹 3.与远程代码仓库建立连接 git remote add origin git@github.com.wuylin/noth ...

  8. 开发环境,eclipse编辑器java代码自动提示

    Eclipse+ADT+Android SDK 搭建安卓开发环境 eclipse编辑器java代码自动提示 window-->Preferences-->JAva-->Content ...

  9. 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件

    1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...

随机推荐

  1. Python3学习之路~7.1 静态方法、类方法、属性方法

    静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量 ...

  2. 如何配置Bitbucket的ssh

    在bitbucket上使用https协议,经常会在提交代码的时候出错,让人很着急上火,但是用ssh就要方便很多.下面介绍一下设置ssh的方法:1.在终端中运行ssh-keygen.2.然后一路ente ...

  3. T-SQL语言基础(2)之SQL Server体系结构

    SQL Server 体系结构 SQL Server 实例 SQL Server 实例是指安装的一个 SQL Server 数据库引擎/服务.在同一台计算机上可以安装 SQL Server 的多个实例 ...

  4. 【心得】-NO.114.面试.1 -【To HR And Interviewer】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  5. [INS-06006] Passwordless SSH connectivity not set up between the following node(s)

    解决方法1 参考:11.2.0.4 runInstaller: [INS-06006] Passwordless SSH connectivity not set up between the fol ...

  6. MVC模式笔记

    参见:https://martinfowler.com/eaaCatalog/modelViewController.html 企业应用架构模式(P of EAA)第14章Web表现模式第一节MVC笔 ...

  7. 关于表情的战争APP隐私政策网址

    本软件尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息.但本软件将以高度的勤勉.审慎义务对待这些信息.除本隐私权政策另 ...

  8. 训练集(train set),验证集(validation set)和测试集(test set)

    把数据集分为三部分,分别为:训练集(train set),验证集(validation set)和测试集(test set). 具体比例有各种说法.待补充 测试集是为了测模型泛化能力,不能在训练的时候 ...

  9. Cocos Creator 生命周期回调(官方文档摘录)

    Cocos Creator 为组件脚本提供了生命周期的回调函数.用户通过定义特定的函数回调在特定的时期编写相关 脚本.目前提供给用户的声明周期回调函数有: onLoad start update la ...

  10. svn 安装

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...