应用背景

部署过程的每一个步骤都自动化,可以带来包括效能在内的显著的好处。你可以手工做这些事情,但是很耗时。二者的生产率差异真的很大。一般目前部署过程涉及到应用、环境和部署流程主要的模型。要实现自动化首先要做的是将需要部署的应用、环境和流程进行建模,所以还是需要一个自动化部署系统来支撑。

环境及版本

  • 服务器CentOS6 两台
  • 最新的jenkins.war包 下载链接

遇到的问题记录

  1. 启动的服务一直出现异常不中断最后超时的情况
    解决方案:nohup java -jar demo.jar > /dev/null 2>&1 &其中> /dev/null 2>&1 &顺序一定不要搞反了
  2. 升级组件及版本前一定要将jenkinsHome备份,防止升级导致的项目不可用。
  3. 万一出现升级后项目不可以,可看jenkins提示的回滚或纠错信息手动现在插件安装

安装jenkins

启动脚本 jenkins.sh

#! /bin/sh
# chkconfig: 2345 10 90   
# description: jenkins ....  
# This script will be executed *after* all the other init scripts.    
# You can put your own initialization stuff in here if you don't    
# want to do the full Sys V style init stuff.    
#prefix=/home/lanmps/jenkins  
#nohup $prefix/start_jenkins.sh >> $prefix/jenkins.log 2>&1 &  
# changjiabo@juneyaoair.com  

JENKINSFILENAME=jenkins.war
JENKINS_ROOT=/opt/jenkins
PORT=8888
export JAVA_HOME=/opt/modules/java/jdk1.8.0_131
export JRE_HOME=/opt/modules/java/jdk1.8.0_131/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar:$JRE_HOME/lib

stop(){
    echo "Stoping $JENKINSFILENAME "  
    netstat -nlp | grep :$PORT | awk '{print $7}' | awk -F"/" '{ print $1 }'|while read pid    
    do
       kill -9 $pid
       echo " $pid kill"  
    done
}
start(){
    echo "Starting $JENKINSFILENAME "  
    nohup $JENKINS_ROOT/start_jenkins.sh >> $JENKINS_ROOT/jenkins.log 2>&1 &
}

case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  stop
  start
  ;;
status)
  ps -ef|grep $JENKINSFILENAME
  ;;
*)
  printf 'Usage: %s {start|stop|restart|status}\n' "$prog"
  exit 1
  ;;
esac

start_jenkins.sh

#!/bin/bash  
#changjiabo@juneyaoair.com
JENKINS_ROOT=/opt/jenkins
export JENKINS_HOME=$JENKINS_ROOT/home
export LANG=en_US.UTF-8
export PYTHONIOENCODING=UTF8

java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar $JENKINS_ROOT/jenkins.war --httpPort=8888

其中JENKINS_ROOT是你自己空间的路径

注意:如果使用service jenkins start命令启动报错:java: command not found,那么java -jar命令就写绝对路径,比如:/usr/java/jdk1.8.0_25/bin/java -jar

将启动脚本设置成服务和开机自启

ln -s /home/lanmps/jenkins/jenkins.sh /etc/init.d/jenkins  
    chkconfig --add jenkins  
    chkconfig --level 345 jenkins on

启动方式

1、/etc/init.d/jenkins start
2、service jenkins start

启动jenkins

  1. 启动后可进行初始化 ,密码一般在日志文件里
  2. jenkins springcloud 部署配置 springcloud jenkins自动部署_jar

  3. 插件安装
    这一步可能由于服务器链接不上网络,可配置代理或者手动安装,当然想省事的兄弟推荐自动的。
  4. jenkins springcloud 部署配置 springcloud jenkins自动部署_Spring_02

  5. 安装完成后,将进入设置用户页面。填写完信息之后点“Save and Next”。
  6. jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_03

  7. 点击“Save and Finish”,并完成安装。

jenkins springcloud 部署配置 springcloud jenkins自动部署_Spring_04

jenkins springcloud 部署配置 springcloud jenkins自动部署_java_05

  1. 使用界面

出装的jenkins 默认插件缺少一部分 无法创建maven项目

下面是插件截图
比较实用的是 git插件 maven插件 中文插件 git参数插件 权限插件

jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_06


!

在这里插入图片描述

jenkins springcloud 部署配置 springcloud jenkins自动部署_java_07

jenkins springcloud 部署配置 springcloud jenkins自动部署_java_08

jenkins springcloud 部署配置 springcloud jenkins自动部署_GitLab_09

jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_10

jenkins系统配置

jenkins springcloud 部署配置 springcloud jenkins自动部署_java_11

服务器段安装好maven 、jkd 、 docker等等

jenkins springcloud 部署配置 springcloud jenkins自动部署_Spring_12

创建一个maven的项目

jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_13

jenkins springcloud 部署配置 springcloud jenkins自动部署_jenkins_14

jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_15


jenkins springcloud 部署配置 springcloud jenkins自动部署_jenkins_16

jenkins springcloud 部署配置 springcloud jenkins自动部署_jar_17

jenkins springcloud 部署配置 springcloud jenkins自动部署_Spring_18

jenkins springcloud 部署配置 springcloud jenkins自动部署_jenkins_19

jenkins springcloud 部署配置 springcloud jenkins自动部署_GitLab_20

jenkins springcloud 部署配置 springcloud jenkins自动部署_jenkins_21

部分图片来源网络,我懒得截图了,反正都差不多