美文网首页
Linux 安装maven,jenkins持续集成

Linux 安装maven,jenkins持续集成

作者: 小马将过河 | 来源:发表于2018-08-14 18:19 被阅读0次

    !jenkins.png](https://img.haomeiwen.com/i4109786/e3ebbb84d5b12bca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    >>>我的博客<<<

    1、安装maven

    1.1、 创建一个maven文件夹,解压maven文件

    [root@1169CKT ~]# cd /home/haieradmin/softs/
    [root@1169CKT softs]# ls
    apache-maven-3.5.2-bin.tar.gz  apache-tomcat-8.5.24.tar.gz  jdk-8u151-linux-x64.tar.gz  mysql57-community-release-el7-8.noarch.rpm  nginx-1.12.2.tar.gz  redis-4.0.6.tar.gz
    [root@1169CKT softs]# mkdir /usr/local/maven
    [root@1169CKT softs]# tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /usr/local/maven/
    

    1.2、设置环境变量,在/etc/profile的文件末尾添加以下配置:

    export M2_HOME=/usr/local/maven/apache-maven-3.5.2
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
    

    执行source命令让新配置立即生效:

    [root@1169CKT softs]# source /etc/profile
    [root@1169CKT softs]# 
    

    1.3、验证

    [root@1169CKT softs]# mvn -v
    Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
    Maven home: /usr/local/maven/apache-maven-3.5.2
    Java version: 1.8.0_151, vendor: Oracle Corporation
    Java home: /usr/local/java/jdk1.8.0_151/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
    [root@1169CKT softs]# 
    

    2、安装jenkins

    安装jenkins简单来说需要下面四步:

    wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update
    sudo apt-get install jenkins
    

    如果是centos系统

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    
    yum install jenkins
    
    image.png

    2.1、 安装简介:

    1、通过上面的安装,Jenkins将作为一个Linux守护进程,可以查看文件/etc/init.d/jenkins
    2、创建一个名为Jenkins的Linux用户
    3、生成日志文件 /var/log/jenkins/jenkins.log
    4、Jenkins 默认端口是8080,在配置文件/etc/default/jenkins 中定义。

    image.png

    如果这个页面起来,在服务器查看jenkins进程,发现没有,应该java的路径没有配好,错误时这样的:

    [root@1169ckt jenkins]# service jenkins restart
    Restarting jenkins (via systemctl):  Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
    [FAILED]
    [root@1169ckt jenkins]# 
    

    这时候修改/etc/init.d/jenkins文件 在java配置的地方加入本机的java环境即可。
    参考:CentOS 7 安装 Jenkins

    install plugins


    image.png image.png

    started

    image.png

    设置用户名密码:admin/admin123

    image.png

    启动后访问:

    image.png

    2.2、 配置权限

    git代码库授权配置问题,需要配置ssh免密码登录,注意,必须是jenkins用户的授权,不是root用户
    如果ssh或者scp时遇到错误类似如下:
    ssh_exchange_identification: read: Connection reset by peer
    那就是需要设置访问IP的白名单,具体操作步骤如下:
    黑名单
    cat /etc/hosts.deny
    白名单
    cat /etc/hosts.allow
    加上需要访问本机的服务器ip地址,保存即可。
    如果ssh到其他服务器出现
    centos ssh: connect to host 10.138.227.188 port 22: No route to host
    的错误,测需要在目标服务器上配置22端口的防火墙白名单,如果是firewall,执行如下命令

    firewall-cmd --permanent --add-port=22/tcp
    firewall-cmd --reload
    
    image.png

    授权配置正确以后的样子大概是这样的


    image.png
    ssh-keygen -t rsa      #生成key 
    cd /var/lib/jenkins/.ssh     #如果没有创建jenkins home的话,可以上jenkins的全局设置里查看jenkins主目录,然后查看ssh路径
    scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys
    

    如果jenkins启动时最后提示找不到JAVA_HOME,如下图所示,

    image.png

    这个情况需要再tomcat的bin目录下找到setclasspath.sh文件,添加上JAVA_HOME目录。


    image.png

    添加

    JAVA_HOME=/usr/local/java/jdk1.8.0_151
    
    JRE_HOME=/usr/local/java/jdk1.8.0_151/jre
    
    image.png

    2.3、jenkins构建里的一些命令:


    image.png
    #删除阿里云服务器中部署的包
    ssh -p 22 root@x.x.x.x 'bash -x -s' < /opt/auto-deploy-scripts/remove-aliyun-questionnaire-test.sh
    #使用scp命令把jenkins最新Build的包传送到阿里云服务器1中
    scp -P 22 /var/lib/jenkins/workspace/chuangke_testserver_auto_deploy/target/questionnaire.war root@x.x.x.x:/opt/tomcat8_test/webapps
    ssh -p 22 root@x.x.x.x 'bash -x -s' < /opt/auto-deploy-scripts/start_tomcat8_test.sh
    

    两个脚本:
    remove-aliyun-questionnaire-test.sh

    #!/bin/bash
    tomcat_pid=`ps -ef | grep tomcat | grep test| grep -v grep | awk '{print $2}'`
    [ -n "$tomcat_pid" ] && kill -9 $tomcat_pid
    
    rm -rf /opt/tomcat8_test/webapps/questionnaire*
    rm -rf /opt/tomcat8_test/logs/localhost*
    rm -rf /opt/tomcat8_test/logs/host-manager*
    rm -rf /opt/tomcat8_test/logs/manager*
    rm -rf /opt/tomcat8_test/logs/catalina.out
    rm -rf /opt/tomcat8_test/work/Catalina/*
    

    start_tomcat8_test.sh

    #!/bin/bash
    /opt/tomcat8_test/bin/startup.sh
    

    如果是直接在jenkins 的Execute Shell里执行脚本,脚本在当前服务器,给当前服务器执行命令,则如下写法。


    image.png
    sleep 200
    echo "--------begin deploy webservice --------"
    date
    /opt/c2m_scripts/backup_last_month_logs.sh
    rm -rf /mnt/jenkins/jenkins_home/workspace/aliyun-testServer1-c2mwebservice-deploy-for-dev-test/c2mwebservice/target/c2mwebservice.war
    
    

    2.5、配置邮件通知

    image.png image.png image.png image.png

    以上是最简单的邮件配置,当构建出错是会发邮件。如果要修改发出的邮件的通知内容,或有更加复杂的操作,可以使用Email Extension Plugin插件进行配置。

    如果用腾讯企业邮箱的话,配置如下:

    image.png image.png

    备注:如果你用jenkins给本机部署应用,比如运行一个jar包,也许会发生的一件事,那就是jenkins部署没有报错,但是java -jar后的应用还没启动自己就死了。这是因为默认不允许运行jenkins的衍生进程导致的,如果是远端服务器就没有问题,如果是本地运行,需要按照如下地址的说明配置一下。
    jenkins中通过execute shell启动的进程会被杀死的问题

    参考

    Centos7中安装最新版maven3.5.0
    How To Install Jenkins on Ubuntu 16.04
    centos7下安装jenkins

    相关文章

      网友评论

          本文标题:Linux 安装maven,jenkins持续集成

          本文链接:https://www.haomeiwen.com/subject/wjovbftx.html