介绍:

http://192.168.193.128:8115/jenkins/

用户名:admin
密码:admin
电子邮箱:admin@admin.com

root/12345678
添加新用户:

test/12345678    test@admin.com
stoneshi/stoneshi stoneshi@admin.com

插件:rebuilder:构建的时候输入参数,输入参数的时候麻烦,再次构建的时候可以输入很多参数。
           safe restart:安全Jenkins重启
        
基础配置:全局安全性--系统管理,configure--安全矩阵--添加admin用户,添加权限--保存
            添加用户---系统管理---管理用户--新建用户tester01---系统管理--如上配置权限,全选,去掉administrator。
普通用户和系统用户区别:注销此用户,登陆tester01,可以创建任务,不能管理Jenkins

测试服务器和Jenkins服务器是部署在不同服务器中,测试应用服务器:
Linux下的安装:
确认开启ssh服务
确认用户名和密码
防火墙 处于关闭状态,测试环境一般用的内网,可以关闭

安装java环境

ssh端口默认是22端口。

安装git:用户存储和管理项目的源代码,大部分公司使用源代码管理。

安装并配置git,验证安装结果
git初始化设置并生成授权证书:
初始化配置
git config --global user.name "stone"
git config --global user.email "stone@admin.com"

生成授权证书
ssh-keygen -t rsa -C "stone@admin.com"    最好和前面的一样
cd ~/.ssh/  
将git证书配置到gitlab上,保证Linux和Gitlab之间可以联通
也就是将公钥放到gitlab的setting---ssh和gitlab中。
配置好后,验证是否成功连接:ssh git@github.com
出现You ve successfully authenticated表明成功连接

安装并配置Maven
实战应用程序是基于Maven构建的
下载包---maven.apache.org-----download----选择Apache-maven-3.5.3-bin.zip下载

unzip Apache-maven-3.5.3-bin.zip
cd apache-maven-3.3.3
文件末尾输入:
export MAVEN_HOME=/root/apache-maven-3.3.3
export PATH=$MAVEN_HOME/bin:$PATH

. /etc/profile   加载系统设置
mvn -version

下载Tomcat省略:
chmod a+x -R /usr/local/tomcat/*

jenkins配置:
新建节点
系统管理--管理节点--新建节点--输入名称test--Permanent Agent--OK
描述:省略

配置IP,路径,IP,用户名,密码

远程工作目录:
计划使用root用户登录Jenkins这台主机,可以配置为/root/.jenkins
启动方法:
Lanuch slave agnets via SSH

主机:Linux的IP地址
使用Linux的用户名和密码来登录,--add--选择。----保存

尝试连接:验证linux服务器连接到Jenkins的服务器上。
点击节点名---launch agent---

说明这台Linux主机成功连接到Jenkins主机上。

运行验证:
创建一个任务,验证是否在Linux上运行。
创建新任务--Enter an item name (testtask)---构建一个自由风格选项--OK
Restrict where this project can be run
Label Expression :输入创建的Linux环境的名称,只能在(testenv)这里面运行
构建步骤---输入shell命令。

github,
fork部署:将修改后的源码,放到git的空间下,
使用自己的账号登录GitHub上--搜索princeqjzh/order---单击fork按钮---进入邮箱点击链接fork完成
--可以看到源码到order下--获得该工程的修改权限

gitlub打开fork部署应用
将应用源代码同步到本机。--order--单击clone or download---ssh格式和http格式--复制ssh格式
--进入服务器,git clone下载--用intellij idea打开克隆项目--file--open--order--this window
源代码的简要说明
架构建立在maven的基础上的--构建maven,所以根目录下有pom.xml文件--java的源代码放到src的main下的java下
创建db的sql目录放到sql下,执行部署应用的shell脚本放到deploy.sh下
验证源代码有无错误--打开maven project--order--lifecycle--同时选中clean,install--执行绿色箭头--看到build success说明构建成功
与后台数据库有交互,创建没MySQL数据表--导入sql语句

修改代码,然后在服务器中push执行。
准备工作总结:
1 FORK GitHub上的练习部署应用,确保获得代码更新权限
2 把应用源代码clone到本地,执行sql语句导入应用数据
3 更新应用的数据库参数,本地运行应用验证系统正确性
4 commit源代码修改,并将改动push到GitHub服务器

Jenkins自动化部署任务
自动化部署过程:
git 同步最新代码
maven 打包
停止Tomcat
部署应用
启动Tomcat
验证web界面

自动化部署代码,在工程的deploy.sh

#!/usr/bin/env bash                调用Linux内核下的bin/shell库,标准写法
#编译+部署order站点 需要配置如下参数
#项目路径,在execute shell中配置项目路径,pwd可以获得该路径
#export PROJ_PATH=这个jenkins任务在部署机器上的路径 #输入你的环境上Tomcat的全路径
#export TOMCAT_APP_PATH=Tomcat在部署机上的路径 ###bash函数
killTomcat()
{
pid=`ps -ef | grep tomcat | grep java| awk '{print $2}'`
echo "tomcat ID list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill - $pid
fi
}
cd $PROJ_PATH/order 进入当前项目的order根目录
mvn clean install 利用maven构建工程 ##停Tomcat
killtomcat #删除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -r $TOMCAT_APP_PATH/webapps/order.war #复制新的工程
cp $PROJ_PATH/order/target/order.war $TOMCAT_APP_PATH/webapps/ cd $TOMCAT_APP_PATH/webapps/
mv order.war ROOT.war ##启动Tomcat
cd $TOMCAT_APP_PATH/

JENKINS的web界面配置
新建任务---项目名称test--Restrict where this project can be run --testenv--git--add pepository
--Additional Behaviours --Local subdirectory for repo --order--构建shell

BUILD_ID=DONTKILLME
##当Jenkins部署完server任务后,server不关闭,但是Jenkins线程会被杀掉。
. /etc/profile
###配置运行参数
export PROJ_PATH=`pwd`
export TOMCAT_APP_PATH=服务器中Tomcat的目录 sh $PROJ_PATH/order/deploy.sh
访问主页,配置成功

Jenkins+GitHub+maven的更多相关文章

  1. Jenkins+github+maven+git+linux

    Jenkins:持续集成的一个工具 github:远程存放代码 maven:利用maven创建项目,配置pom.xm依赖 git :本地仓库,可以提交代码到远程(我都是使用git 在git bush ...

  2. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...

  3. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  4. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  5. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  6. Jenkins + GitHub + fir-cli 一行命令从源码到fir.im

    上周简书作者宣X_x  分享了一篇文章--用Jenkins+GitHub+Xcode+fir搭了一个持续集成环境,整个记录见(传送门). _______ 其实fir.im为我们提供了一个更简单的方式: ...

  7. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

  8. jenkins+github持续集成中的坑

    1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集 ...

  9. jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

    一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...

随机推荐

  1. C# 使用解析json 嵌套方法

    C#从网页不传参数 接收json数据 public String GetHtmlFromUrl(String url) { //Response.Write(url); //Response.End( ...

  2. Vijos P1243 生产产品 (单调队列优化DP)

    题意: 必须严格按顺序执行M个步骤来生产一个产品,每一个步骤都可以在N台机器中的任何一台完成.机器i完成第j个步骤的时间为T[i][j].把半成品从一台机器上搬到另一台机器上也需要一定的时间K.每台机 ...

  3. 51nod 1489 蜥蜴和地下室

    题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 哈利喜欢玩角色扮演的电脑游戏<蜥蜴和地下室>.此时,他正在扮演一个魔术 ...

  4. BZOJ 4563: [Haoi2016]放棋子

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 389  Solved: 248[Submit][Status][Discuss] Descriptio ...

  5. bzoj3209:3209: 花神的数论题

    觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g[ ...

  6. 【转】 iOS学习之NSBundle介绍和使用

    bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle, cocoa提供了类NSBun ...

  7. 【动态规划】51nod1780 完美序列

    巧妙的转化:f前两维大小开反TLE了一发…… 如果一个序列的相邻两项差的绝对值小于等于1,那么我们说这个序列是完美的. 给出一个有序数列A,求有多少种完美序列排序后和数列A相同. Input 第一行一 ...

  8. python numpy模块

    目录 numpy模块 一维数组 二维数组(用的最多的) 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的元素的替换 通过函数方法创建多维数组 矩阵的运算 点乘和转置(了解) 点乘必须 m*n ...

  9. urllib、requests库整理

  10. Java-basic-3-运算符-修饰符-循环

    运算符: 与C++类似,特殊的有: 1)按位右移补零操作符: 2)instanceof运算符:判断一个实例是否是某类/接口类型 如果是/类型兼容,则返回true // superclass class ...