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

posted on 2019-09-05 00:50  SZ_文彬  阅读(241)  评论(0编辑  收藏  举报