• jenkins


    持续集成,自动测试,持续部署的超级引擎,支持自定义工具集,多种交互通道

    第一种安装方法

    安装java环境:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

    rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

    Admin默认密码:/var/lib/jenkins/secrets/initialAdminPassword

    卡启动:断网等待

    systemctl start jenkins

    chkconfig  jenkins on

    系统设置 –》用户管理 修改密码

    安装插件

    存放插件路径:/var/lib/jenkins/plugins/

    tar xf plugins.tar.gz -C plugins

    systemctl restart Jenkins  解压完重启一下

    chown Jenkins:Jenkins –R ./  修改权限

    更新那插件

    下载插件https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

    http://updates.jenkins-ci.org/

    下载完直接在高级上传更新

    Jenkins配置

    rpm -ql Jenkins

    /etc/init.d/Jenkins  服务启动文件

    /etc/logrotate.d/jenkins

    /etc/sysconfig/Jenkins 配置文件

    /usr/lib/jenkins

    /usr/lib/jenkins/jenkins.war

    /usr/sbin/rcjenkins

    /var/cache/Jenkins 程序代码

    /var/lib/Jenkins 主目录

    /var/log/Jenkins

    vim /etc/sysconfig/jenkins

    JENKINS_USER="root"  生成环境用 Jenkins 账户

    systemctl restart Jenkins

    备份:

    tar xf zcf Jenkins.tar.gz /var/lib/Jenkins

    做定时任务

    系统管理 –>系统配置  -->执行者数量 5 –>用法 只允许绑定到这台机器job –》生成前等待时间 10 任务10秒后开始运行 àSCM签出重试次数 3 拉取git失败重试次数

    Jenkins升级版本

    systemctl stop Jenkins

    cd /usr/lib/jenkins/

    mv jenkins.war jenkins.war-2.32.3.war.bak

    上传新版war包  jenkins.war

    systemctl start Jenkins 启动,版本更新了

    第二种安装方法(推荐)

    由于Jenkins属于一个JAVA 代码,需要java容器才能运行jenkins,所以需要安装JDK+Tomcat,方法如下:

    JAVA JDK安装

    #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-8u91-linux-x64.tar.gz

    tar -xzf  jdk-7u25-linux-x64.tar.gz  ; mkdir -p /usr/java/ ; mv jdk1.8.0_25/ /usr/java/jdk1.8

    #然后配置环境变量,这样可以任何地方引用jdk,如下配置:

    #vi /etc/profile 最后面加入以下语句:

    export JAVA_HOME=/usr/java/jdk1.8

    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

    #source /etc/profile   #使环境变量马上生效

    #java -version    #查看java版本,看到jdk1.8.0_25版本即代表java jdk安装成功。

    Tomcat安装配置

    #官方网站下载tomcat 8.0.36或者其他版本:

    tar xzf  apache-tomcat-8.0.36.tar.gz

    #直接解压就可以使用,解压完成执行:

    mv apache-tomcat-8.0.36  /usr/local/tomcat

    把得到的war包直接扔到tomcat下webapps/ROOT/下,启动tomcat,Jenkins就安装完毕!

    rm -rf  /usr/local/tomcat/webapps/* ;

    mkdir -p /usr/local/tomcat/webapps/ROOT/;

    mv jenkins.war /usr/local/tomcat/webapps/ROOT/;

    jar –xf jenkins.war

    构建自由项目

    新建 --》构建一个自由风格的软件项目 --》 选丢弃旧的构建 10 --》git配置 --》构建 --》Excute shell

    gitlab拉下来的代码路径:/var/lib/jenkins/workspace/php

    给上线的服务器建立免密连接

    模拟发布

    Execute shell

    rsync -raz --delete --progress * root@192.168.81.20:/data/www/php  这条命令

    相当于在Jenkins服务器:/var/lib/jenkins/workspace/php这里执行

    在点击立即构建 -->就是发布构建一次

    maven编译打包

    tar xf apache-maven-3.3.9-bin.tar.gz && mv apache-maven-3.3.9 /usr/maven

    Global Tool Configurationàmavenà jdk: java /usr/java/jdk1.8  maven:/usr/maven

    新建 --》www.jfedu.net--》描述:该项目部署jfedu.war包工程-->源码管理: svn://139.224.227.121:8801/edu 账号shareku1密码www.jfedu.netQAZ

    BuildàRoot POM ./www/pom.xml  Global and options:clean install -Dmaven.test.skip=true 跳过测试 –》保存 –》立即构建 结果:Archiving /var/lib/jenkins/workspace/www.jfedu.net/www/target/edu.war to com.shareku/edu/0.0.1-SNAPSHOT/edu-0.0.1-SNAPSHOT.war

    部署tomcat

    cd /usr/local/ && tar xf apache-tomcat-8.0.36.tar.gz &&mv apache-tomcat-8.0.36  tomcat

    vim conf/server.xml

        <Connector port="8086" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />

       <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    cd webapps/ ROOT/ && rm -rf * && cp /tmp/edu.war ./ && jar -xf edu.war

    /usr/local/tomcat/bin/startup.sh

    tail -fn 100 /usr/local/tomcat/logs/catalina.out

    ss –ntl

    访问: http://192.168.85.120:8086/

    自动部署

    构建后操作—》archive the artifactsà **/target/*.war

    Post Steps àExcute Shell:

    yes|cp /root/.jenkins/workspace/www.jfedu.net/www/target/edu.war /var/www/html/download/

    ssh  root@192.168.85.120  'bash -x -s' < /root/auto_deploy_tomcat.sh

    脚本在远程服务器执行

    #!/bin/bash

    #Auto deploy Tomcat for jenkins perf

    #by author wugk 2016-07-06

    export JAVA_HOME=/usr/java/jdk1.8

    TOMCAT_PID=`/usr/sbin/lsof -n -P -t -i :8082`

    TOMCAT_DIR="/usr/local/tomcat2/"

    FILES="edu.war"

    DES_DIR="/usr/local/tomcat2/webapps/ROOT/"

    DES_URL="http://192.168.85.120/download"

    BAK_DIR="/export/backup/`date +%Y%m%d-%H%M`"

    [ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID

    cd $DES_DIR

    rm -rf $FILES

    mkdir -p $BAK_DIR;cp -a $DES_DIR/* $BAK_DIR/

    rm -rf $DES_DIR/*

    wget -c $DES_URL/$FILES

    /usr/java/jdk1.8/bin/jar  -xf  $FILES

    ####################

    cd $TOMCAT_DIR;rm -rf work

    /bin/sh $TOMCAT_DIR/bin/startup.sh

    sleep 10

    tail -n 50 $TOMCAT_DIR/logs/catalina.out

    批量自动部署

    jenkins服务器上安装ansible

    cat /etc/ansible/hosts

    [web]

    192.168.85.120 ansible_ssh_user=root ansible_ssh_pass=123456

    192.168.85.130 ansible_ssh_user=root ansible_ssh_pass=123456

    job配置àPost Steps àExcute Shell:

    yes|cp /root/.jenkins/workspace/www.jfedu.net/www/target/edu.war /var/www/html/download/

    ansible web -m copy -a 'src=/root/auto_deploy.sh dest=/tmp'

    ansible web -m shell -a 'cd /tmp/;/bin/bash auto_deploy.sh'

    git parameter发布

    远程管理

    ssh remote插件

    系统设置 --》 SSH remote hosts 添加主机

    php任务-->配置 -->构建 --> 增加构建步骤 --》Execute shell script on remote host using ssh -->command t 相当在远程服务器执行远程服务器脚本或命令

    定时构建

    新建 --》clear_log -->构建一个自由风格的软件项目 --》构建触发器 --》Build perioddically (构建周期) --》点问号:帮助---》日程表:H/1 * * * * 每一分钟执行一次

    --》构建 ---》增加构建 --》Execute shell --> echo $(date) >> /root/clear_log.txt

    邮件配置

    安装email-ext,emailext-template,token-macro插件

    配置集群

    node节点安装java环境:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel –y

    #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-8u91-linux-x64.tar.gz

    tar -xzf  jdk-7u25-linux-x64.tar.gz  ; mkdir -p /usr/java/ ; mv jdk1.8.0_25/ /usr/java/jdk1.8

    #然后配置环境变量,这样可以任何地方引用jdk,如下配置:

    #vi /etc/profile 最后面加入以下语句:

    export JAVA_HOME=/usr/java/jdk1.8

    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

    #source /etc/profile   #使环境变量马上生效

    #java -version    #查看java版本,看到jdk1.8.0_25版本即代表java jdk安装成功。

    系统设置 --》security安全设置 --》启用安全 端口 30000(可不设置)

    系统设置 --》管理节点 ---》jenkins_node -->permanent agent

    如果要并发: 节点à尽可能的使用这个节点 配置à在必要的时候并发构建

    executors:5 执行器

    远程工作目录:/data/jenkins -->只允许绑定这台机器的job -->Luanch slave agents via SSh ( 通过ssh来启动) –> non Verifying -->window是就选 windows --> Host key Verification -->non Verifying -->添加节点的root账号和密码

    在job配置项里选上 Restrict where this project can be run 指定节点构建  --》填上节点名

    按角色授权:

    需要有Role-based Authorization Strategy 插件

    系统管理--》访问控制 --》授权策略 --》选上Role-Based Strategy (保存)

    用户 ---》

    系统设置--》管理用户 --》新建用户 --》用户java/密码java  php/密码php

    系统管理--》Manage and Assign Roles --》Manage Roles -->project roles  Roles to add:java-team Pattern:java.*所有项目 java开头的都关联到java-team上来

    系统管理--》Manage and Assign Roles --》Manage Roles -->project roles  Roles to add:php-team Pattern:php.*所有项目 php开头的都关联到php-team上来

    给的权限: build cancel configure create delete discover move read workspace delete replay update

    系统管理--》Manage and Assign Roles --》Assign Roles分配角色 --> project roles-->输入java/php 勾上java-team/php-team

    添加全局权限:

    系统管理--》Manage and Assign Roles --》 global roles -->read角色--》分配:Overall全局只读Read权限 用于登录系统

    系统管理--》Manage and Assign Roles --》Assign Roles分配角色 -->global roles 输入java/php 都勾上 read

    系统管理--》Manage and Assign Roles --》 global roles -->newjob角色--》分配:Overall全局只读 Read权限  Job任务创建Create权限 用于创建job

    系统管理--》Manage and Assign Roles --》Assign Roles分配角色 -->global roles 输入java/php 都勾上newjob

  • 相关阅读:
    RPC、HTTP、IDL
    秋招拿了7个offer,分享一些反思和经验
    “功能测试”到“测试开发”升级之路
    Github最全买房租房攻略,火了!
    王垠:怎样尊重一个程序员?
    为什么曾经优秀的人突然变得平庸?
    你这么努力,为什么能力提升还这么慢?
    打工人到什么状态,就可以离职了?
    怎样才能迅速晋升?
    如何做个优秀的经理?
  • 原文地址:https://www.cnblogs.com/leiwenbin627/p/11462697.html
Copyright © 2020-2023  润新知