• 【Linux】Jenkins以war包运行及开机启动配置(四)


      本例介绍jenkins已war包运行及开机启动配置

      环境:Linux环境(CentOS 7.4)

    以war包运行

      1、下载jenkins.war包

      2、启动war包( 默认端口:8080,默认JENKINS_HOME目录:~/.jenkins )

        前台启动命令:java -jar jenkins.war

        后台启动命令:nohup java -jar jenkins.war &

      3、使用浏览器打开地址:http://ip:8080,即可访问到jenkins

        关闭jenkins,页面访问地址:http://ip:8080/exit

        重启jenkins,页面访问地址:http://ip:8080/restart

      4、其他安装参考【Linux】Jenkins安装(一)

      5、修改JENKINS_HOME目录启动,需要新建一个脚本jenkins.sh,然后运行脚本 

    1 #!/bin/bash
    2 # 导入JENKINS_HOME环境变量
    3 export JENKINS_HOME=/data/soft/jenkins
    4 
    5 cd $JENKINS_HOME
    6 
    7 # 启动Jenkins
    8 nohup java -jar jenkins.war  --ajp13Port=-1 --httpPort=18080 >/dev/null 2>&1 &

      6、构建shell,demo如下:

     1 #!/bin/bash
     2 # 编译+部署zeus站点
     3 
     4 # 保持Jenkins启动的Service(tomcat) 不被杀死
     5 export BUILD_ID=dontKillMe
     6 
     7 # 需要配置如下参数
     8 # 项目路径,在Execute Shell中国配置项目路径, pwd 就可以获得项目路径
     9 # export PROJ_PATH=这个jenkins任务在部署机器上的路径
    10 export PROJ_PATH=`pwd`
    11 
    12 # 输入你在环境上tomcat的全路径
    13 # export TOMCAT_APP_PATH=tomcat在部署机器上的路径
    14 export TOMCAT_APP_PATH=/data/soft/apache-tomcat-8080
    15 
    16 
    17 ### base 函数
    18 killTomcat()
    19 {
    20     pid=`ps -ef | grep tomcat-8080 | grep -v grep | awk '{print $2}'` 
    21     echo "Tomcat Id is : $pid"
    22     if [ ! -n "$pid" ];
    23     then
    24         echo "No Tomcat Pid alive"
    25     else 
    26         echo "Tomcat Pid alive"
    27     fi
    28 }
    29 
    30 cd $PROJ_PATH/god-site
    31 pwd
    32 
    33 mvn clean package
    34 
    35 # 停tomcat
    36 killTomcat
    37 
    38 # 删除原有工程
    39 rm -rf $TOMCAT_APP_PATH/webapps/zeus.war
    40 
    41 # 复制新的工程
    42 cp $PROJ_PATH/god-site/god-web/god-web-zeus/target/zeus.war $TOMCAT_APP_PATH/webapps/
    43 
    44 # 启动Tomcat
    45 cd $TOMCAT_APP_PATH
    46 sh bin/startup.sh
    View Code

      补充:

      使用java -jar 命令的时候可以加入启动参数,启动命令格式:java -jar jenkins.war [--option=value] [--option=value],

      到达一些配置效果,例如:

        修改jenkins端口启动命令:java -jar jenkins.war --httpPort=18080

      其他启动参数查看命令:java -jar jenkins.war --help

     1 [root@H__D jenkins]# java -jar jenkins.war --help
     2 Running from: /data/soft/jenkins/jenkins.war
     3 webroot: $user.home/.jenkins
     4 Jenkins Automation Server Engine 2.184
     5 Usage: java -jar jenkins.war [--option=value] [--option=value]
     6 
     7 Options:
     8    --webroot                = folder where the WAR file is expanded into. Default is ${JENKINS_HOME}/war
     9    --pluginroot             = folder where the plugin archives are expanded into. Default is ${JENKINS_HOME}/plugins
    10                               (NOTE: this option does not change the directory where the plugin archives are stored)
    11    --extractedFilesFolder   = folder where extracted files are to be located. Default is the temp folder
    12    --daemon                 = fork into background and run as daemon (Unix only)
    13    --logfile                = redirect log messages to this file
    14    --enable-future-java     = allows running with new Java versions which are not fully supported (class version 52 and above)
    15    --javaHome               = Override the JAVA_HOME variable
    16    --toolsJar               = The location of tools.jar. Default is JAVA_HOME/lib/tools.jar
    17    --config                 = load configuration properties from here. Default is ./winstone.properties
    18    --prefix                 = add this prefix to all URLs (eg http://localhost:8080/prefix/resource). Default is none
    19    --commonLibFolder        = folder for additional jar files. Default is ./lib
    20 
    21    --extraLibFolder         = folder for additional jar files to add to Jetty classloader
    22 
    23    --logThrowingLineNo      = show the line no that logged the message (slow). Default is false
    24    --logThrowingThread      = show the thread that logged the message. Default is false
    25    --debug                  = set the level of debug msgs (1-9). Default is 5 (INFO level)
    26 
    27    --httpPort               = set the http listening port. -1 to disable, Default is 8080
    28    --httpListenAddress      = set the http listening address. Default is all interfaces
    29    --httpKeepAliveTimeout   = how long idle HTTP keep-alive connections are kept around (in ms; default 5000)?
    30    --httpsPort              = set the https listening port. -1 to disable, Default is disabled
    31    --httpsListenAddress     = set the https listening address. Default is all interfaces
    32    --httpsKeepAliveTimeout  = how long idle HTTPS keep-alive connections are kept around (in ms; default 5000)?
    33    --httpsKeyStore          = the location of the SSL KeyStore file. Default is ./winstone.ks
    34    --httpsKeyStorePassword  = the password for the SSL KeyStore file. Default is null
    35    --httpsKeyManagerType    = the SSL KeyManagerFactory type (eg SunX509, IbmX509). Default is SunX509
    36    --httpsPrivateKey        = this switch with --httpsCertificate can be used to run HTTPS with OpenSSL secret key
    37      / --httpsCertificate     file and the corresponding certificate file
    38    --http2Port              = set the http2 listening port. -1 to disable, Default is disabled
    39    --http2ListenAddress     = set the http2 listening address. Default is all interfaces
    40    --excludeCipherSuites    = set the ciphers to exclude (comma separated, use blank quote " " to exclude none) (default is
    41                            // Exclude weak / insecure ciphers 
    42                            "^.*_(MD5|SHA|SHA1)$", 
    43                            // Exclude ciphers that don't support forward secrecy 
    44                            "^TLS_RSA_.*$", 
    45                            // The following exclusions are present to cleanup known bad cipher 
    46                            // suites that may be accidentally included via include patterns. 
    47                            // The default enabled cipher list in Java will not include these 
    48                            // (but they are available in the supported list). 
    49                            "^SSL_.*$", 
    50                            "^.*_NULL_.*$", 
    51                            "^.*_anon_.*$" 
    52    --controlPort            = set the shutdown/control port. -1 to disable, Default disabled
    53 
    54    --useJasper              = enable jasper JSP handling (true/false). Default is false
    55    --sessionTimeout         = set the http session timeout value in minutes. Default to what webapp specifies, and then to 60 minutes
    56    --sessionEviction        = set the session eviction timeout for idle sessions in seconds. Default value is 180. -1 never evict, 0 evict on exit
    57    --mimeTypes=ARG          = define additional MIME type mappings. ARG would be EXT=MIMETYPE:EXT=MIMETYPE:...
    58                               (e.g., xls=application/vnd.ms-excel:wmf=application/x-msmetafile)
    59    --maxParamCount=N        = set the max number of parameters allowed in a form submission to protect
    60                               against hash DoS attack (oCERT #2011-003). Default is 10000.
    61    --useJmx                 = Enable Jetty Jmx
    62    --qtpMaxThreadsCount     = max threads number when using Jetty Queued Thread Pool
    63    --jettyAcceptorsCount    = Jetty Acceptors number
    64    --jettySelectorsCount    = Jetty Selectors number
    65    --usage / --help         = show this message
    66  Security options:
    67    --realmClassName               = Set the realm class to use for user authentication. Defaults to ArgumentsRealm class
    68 
    69    --argumentsRealm.passwd.<user> = Password for user <user>. Only valid for the ArgumentsRealm realm class
    70    --argumentsRealm.roles.<user>  = Roles for user <user> (comma separated). Only valid for the ArgumentsRealm realm class
    71 
    72    --fileRealm.configFile         = File containing users/passwds/roles. Only valid for the FileRealm realm class
    73 
    74  Access logging:
    75    --accessLoggerClassName        = Set the access logger class to use for user authentication. Defaults to disabled
    76    --simpleAccessLogger.format    = The log format to use. Supports combined/common/resin/custom (SimpleAccessLogger only)
    77    --simpleAccessLogger.file      = The location pattern for the log file(SimpleAccessLogger only)

     开机启动配置

      参考:【Linux】开机自动启动脚本

      1、编写启动脚本jenkins

        命令:vim /data/soft/jenkins/jenkins.sh

     1 #!/bin/bash 
     2 
     3 # 导入环境变量 
     4 export JENKINS_HOME=/data/soft/jenkins 
     5 export JAVA_HOME=/data/soft/jdk1.8.0_181
     6 
     7 cd $JENKINS_HOME 
     8 
     9 pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'`    
    10   if [ "$1" = "start" ];then 
    11   if [ -n "$pid" ];then
    12   echo 'jenkins is running...' 
    13 else 
    14   ### java启动服务 配置java安装根路径,和启动war包存的根路径
    15   nohup $JAVA_HOME/bin/java  -Xms128m -Xmx256m   -jar $JENKINS_HOME/jenkins.war  --ajp13Port=-1 --httpPort=18080 >/dev/null 2>&1 &
    16   fi
    17   elif [ "$1" = "stop" ];then
    18   exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9 
    19   echo 'jenkins is stop...'
    20 else
    21   echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""  
    22   fi 

      2、给jenkins.sh文件授权

        命令:chmod +x /data/soft/jenkins/jenkins.sh

      3、在/etc/rc.d/rc.local文件底部,添加内容:

    1 # jenkins              
    2 /data/soft/jenkins/jenkins.sh start 

      4、重启计算机

        命令:reboot

     Jenkins常用功能

      1、备份、迁移、恢复jenkins

      首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形式存放在JENKINS_HOME目录中。不管是迁移还是备份,只需要操作JENKINS_HOME就行了。

      迁移:建议将JENKINS_HOME打包后在拷贝,windows可以用zip,rar等,Linux有zip,tar等,然后将打包的文件解压到新的JENKINS_HOME目录就行了。

      备份:如果是临时备份,整个压缩文件就行了。

      恢复:恢复的时候需要先停止jenkins。

      2、升级Jenkins

      Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新)。如此频繁的更新,怎么升级呢?

      war:下载新版的war文件,替换旧版本war文件。重启即可。

      二进制:卸载旧版本,安装新版本即可。

      Jenkins程序下载地址:http://mirrors.jenkins-ci.org/

     

      

        

  • 相关阅读:
    Java学习之路-Hessian学习
    Hessian知识学习总结(二)——Hessian的helloworld
    如何封装RESTful Web Service
    c#string为传值模式
    Acrobat 无法在本页面上执行OCR识别
    redis error It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING
    关于bootstrap的modal弹出层嵌套子Modal所引发的血案(转)
    项目学习——后台事件监听并触发相应操作
    Redis学习笔记
    正则表达式
  • 原文地址:https://www.cnblogs.com/h--d/p/11186529.html
Copyright © 2020-2023  润新知