zoukankan      html  css  js  c++  java
  • jenkins自动化部署

    jenkins 安装步骤

    环境: centos7,jdk1.8.0,jenkins2.165,maven3.5.2

    一、 安装配置java环境

        # tar -zxvf jdk-8u171-linux-x64.tar.gz   
        # mv  jdk1.8.0_171/ /usr/local/java
        # vim /etc/profile       # 配置环境变量
            export JAVA_HOME=/usr/local/java
         export JRE_HOME=${JAVA_HOME}/jre
         export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
         export PATH=${JAVA_HOME}/bin:$PATH
        # source /etc/profile   #  环境变量生效
        # java -version    # 安装完成,查看java版本
         java version "1.8.0_171"
        Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
        Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

    二、安装jenkins

          第一种方法,使用yum安装

      第二种方法,使用war包部署

             下载war包:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.3/jenkins.war

             将war包部署到tomcat下面,通过启动tomcat来运行jenkins。

        这里我使用第一种方法

    三、安装完成,启动服务

               # systemctl start jenkins.service
       # ps -ef |grep jenkins
    jenkins 26904 1 39 16:23 ? 00:00:18 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
           
       配置文件目录: /etc/sysconfig/jenkins 
      日志目录: /var/log/jenkins/jenkins.log
       war包目录:/usr/lib/jenkins/jenkins.war 
       工作区目录:/var/lib/jenkins

    四、登录jenkins

        访问jenkinsip:8080 ,进入登录页面,安装插件,创建管理员用户

    五、jenkins基础配置

    创建用户:系统管理--》管理用户
    用户权限:系统管理--》全局安全配置--》访问控制--》授权策略--》安全矩阵--》添加用户
         

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

    1、安装maven
    • 下载地址  https://maven.apache.org/download.cgi
      # wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
      # tar zxvf apache-maven-3.5.2-bin.tar.gz
      # mv apache-maven-3.5.2 /usr/local/
    • 配置环境变量:
      # vim /etc/profile
          export MAVEN_HOME=/usr/local/apache-maven-3.5.2
          export PATH=$MAVEN_HOME/bin:$PATH
      # source /etc/profile
      # mvn --version

    2、配置jenkins服务器和git仓库的连通性

          1, jenkins服务器安装git命令   

    • # yum install git -y
    • #  git --version
       git version 1.8.3.1

       2, git最好是使用ssh协议,然后使用ssh密钥,这样免去每次都输密码的麻烦       

           
         把jenkins服务器的用户公钥加到git仓库的两种方法:
            1.登入git点击头像,然后 Settings -> 左栏点击 SSH Keys -> 添加   
            2.选择项目-->Settings-->Repository-->Deploy Keys 添加
         验证: 加完之后在jenkins服务器验证能够直接远程git私有库
                   # git ls-remote -h git@github.com:test/test-java.git HEAD  没有报错就说明能够连通
     
    3、 jenkins配置构建
        1,jenkins先安装maven插件。系统管理-->管理插件  安装 Maven Integration插件  
        2,新建一个任务,构建一个自由风格的项目,名为java-test.
    配置: 

        jenkins加私钥的方法: 在jenkins-->Credentials-->Add Credentials 加入jenkis服务器私钥
        构建过程:
        
         Goals and options : clean install -D maven.test.skip=true
     

    将war项目部署到远程服务器

    1,在远程服务器安装tomcat,用于部署运行war包
        下载地址: http://tomcat.apache.org/
      # wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
      # tar xzvf apache-tomcat-8.5.38.tar.gz
      # mv apache-tomcat-8.5.38 /usr/local/tomcat
    2,配置远程tomcat的角色和用户,否则jenkins服务器无法将war发送过来
      在tomcat目录conf文件夹下tomcat-users.xml
    <role rolename="manager-status"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcatpass" roles="manager-gui,manager-script,manager-jmx,manager-status" />
    </tomcat-users>
    还需配置  vim webapps/manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|112.97.59.*|118.24.103.105" />
    #  加上允许的ip 或者网段
       本地测试是否允许远程连接的:访问ip:8080/manager/html  提示输入用户名密码 输入之后可以进入页面 
    3,配置jenkins, “构建后操作 ”  
      将打包好的war包发送到远程服务器 ,事先需安装安装Deploy to container Plugin
     
    配置完成点击保存,然后点击开始构建。查看日志,构建成功。
    验证:访问远程tomcat服务器,发现程序已经正常运行。(构建的是热部署,不用重新启动tomcat)
     
    其他配置说明:
    发布时选择github库里代码分支的配置
     1,先在管理插件里面安装 Git Parameter 插件
     2,在配置--》【参数化构建过程】 中加入【Git Parameter选项】 { Name: BRANCH_NAME   Description:分支  Parameter Type:Branch }  
    在【源码管理】里面 【Git Repositories】的选项 Branches to build: Branch Specifier (blank for 'any') 填入${BRANCH_NAME}
    点击系统管理->Global Tool Configuration,配置jdk,git,maven的根目录
     
    给项目单独指定分配用户权限:
    1,安装Matrix Authorization Strategy这个插件
     2,全局安全配置->Access Control Authorization->项目矩阵授权策略:
     3,在项目里面,为用户分配构建权限。

    备份恢复 

    jenkins自带一个备份恢复的插件:ThinBackup

     

    配置之后 ,还可选择立即备份,或者恢复

    Jenkins构建完成自动发送邮件配置 

    1. 打开"系统管理"——"系统设置"
    2. 在"Jenkins Location"设置系统管理员地址(重要:不能省略!)
    3. 在"邮件通知"部分配置发送邮件的用户名、密码(注意这里的密码使用的是qq邮箱设置的"客户端授权码",不是登陆密码)
    4. 测试:勾选"通过发送测试邮件测试配置",填入测试收件人,点击"Test Configuration" 到qq邮箱里check新邮件
     

     5.实例配置。  "系统管理"——"系统设置"

    再进入任务的配置页面,然后在构建后操作模块增加构建后的操作“Editable Email Notification”
     6,注意要添加触发器 否则邮件也不会发送
     7,系统设置里面可以配置默认的收件人文本类型邮件主题内容等。
     

    打开调试模式

     

    结合salt构建项目  

    jenkins带有一个saltstack插件,可以通过salt-api执行salt命令和state文件。

    官网文档:https://wiki.jenkins.io/pages/viewpage.action?pageId=105742376

    1, jenkins【系统管理】->【管理插件】->【可选插件】->【saltstack】->安装
    2, 在salt-master服务器上面配置 salt-api
      安装salt-api   # yum Install salt-api -y
           权限配置   允许访问salt-api的用户获得必要的salt模块的权限。 同时为@runner返回者授予访问权限。
        # vim /etc/salt/master.d/salt-api.conf
    external_auth:
      pam:
        salt:       #用户名
          - test.*   #可以使用的salt模块
          - pkg.*
          - cmd.*
          - state.*
          - '@runner'
        salt-test:  #用户名
          - .*
          - '@runner'
    rest_cherrypy:   # CherryPy HTTP 配置
      port: 8000
      disable_ssl: True    #不启用ssl
    #  ssl_crt: /etc/pki/tls/certs/localhost.crt
    #  ssl_key: /etc/pki/tls/certs/localhost.key
      expire_responses: False
     
    3,添加用户名密码
    # useradd salt
    # echo 'salt.123' |passwd --stdin salt 
    验证: #salt -a pam '*'  test.ping
     
    4,jenkins 配置
    runner    master上运行salt-run命令 
     
    可以在日志中看到
    [test-salt] $ /bin/sh -xe /tmp/jenkins4249602781345844003.sh
    Response on manage.status
    [{
    "down": ["minion-dev"],
    "up": ["minion-pro"]
    }]
     
    local  运行salt命令的标准方法。如果命令快速返回,则返回结果。否则,如果命令长时间运行,jenkins将不会等待。
    如下:执行salt-api服务器上面的 history.sls文件
    相当于在salt-master执行:   # salt  'server02'  state.sls history

    salt-master服务器上面

    history_date:
      file.append:
        - name: /etc/profile
        - text: HISTTIMEFORMAT='%F %T '
    # /srv/salt/history.sls

    可以在上面的配置里启用参数化构建。先把目标服务器设置成一个变量,这里的Target使用这个变量, 构建时指定服务器就可以

     

    如果不使用参数化构建,Target直接填要发布的minion服务器id。

    构建的时候勾选目标服务器就可以啦

     构建成功,验证minion02上面/etc/profile 最后一行多了一句 HISTTIMEFORMAT='%F %T '

     日志:

  • 相关阅读:
    小程序开发学习记录(一)
    解决移动端touch事件与click冲突的问题
    解决node.js使用fs读取文件出错
    防抖和节流
    promise
    ES6新的特性有哪些?
    css盒模型
    CSS3有哪些新特性?
    ES6新增的数据类型Map和Set。
    js求两个数组的交集|并集|差集|去重
  • 原文地址:https://www.cnblogs.com/xiaobaozi-95/p/9406101.html
Copyright © 2011-2022 走看看