jenkins安装和配置

.安装jenkins
.yum install java
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key .yum install jenkins .启动jenkins
[root@localhost sysconfig]# systemctl start jenkins
[root@localhost sysconfig]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK -Bit Server VM (build 25.181-b13, mixed mode)
[root@localhost sysconfig]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN ::: jenkins默认监听8080端口 登录jenkins
http://192.168.11.129:8080
cat /var/lib/jenkins/secrets/initialAdminPassword
admin
632569a8b45b46d2b7799291e79bd958

jenkins基础配置

SVN服务器搭建

svn来自于软件包subversion      安装完成这个包之后自动包含svn服务器端和客户端命令

搭建svn服务器
.yum install subversion
.创建svn版本库目录
mkdir -p /var/svn/svnrepos
.创建版本库
svnadmin create /var/svn/svnrepos
会自动创建出一系列固定的目录
[root@localhost subversion]# cd /var/svn/svnrepos/
[root@localhost svnrepos]# ls
conf db format hooks locks README.txt
.修改配置文件
进入conf目录(该svn版本库配置文件)/var/svn/svnrepos/conf
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
.设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
.设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限
.修改svnserve.conf文件
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
.启动svn版本库
svnserve -d -r /var/svn/svnrepos
监听的端口是

svn搭建

.把s2目录下所有的源代码文件导入到svn管理库
svn import /root/s2 svn://192.168.11.130/ -m "import tree"
.查看远程svn服务器代码
[root@localhost s2]# svn list --verbose svn://192.168.11.130
yxh 9月 : ./
yxh 9月 : .txt
yxh 9月 : index.html
yxh 9月 : test2.txt
.从svn中拉取最新代码
mkdir /data/test
svn checkout svn://192.168.255.12/ /data/test --username oldboy --password oldboysecret
[root@localhost s2]# svn co svn://192.168.11.130/
A index.html
A test2.txt
C .txt
取出版本 。
[root@localhost s2]# ls
.txt index.html test2.txt
.把本地文件提交到svn服务器中
[root@localhost svntest]# svn add index.html
[root@localhost svntest]# svn ci index.html -m ""
正在增加 index.html
传输文件数据.
提交后的版本为3

svn客户端命令

jenkins执行shell脚本

需要注意两点:

1.执行脚本当前所在的路径是jenkins当前任务的工作目录 比如构建test1任务的时候/var/lib/jenkins/workspace/test1

2.执行脚本的当前用户是启动jenkins用户 默认为jenkins这个普通用户 所以可能会遇到权限不足的情况

jenkins服务器和web服务器主机都需要创建
[root@localhost html]# groupadd -g www
[root@localhost html]# useradd -u -g www www
[root@localhost html]# echo "" | passwd --stdin www 实现www用户无密码ssh登录
[root@localhost ~]# su www
[www@localhost root]$ ssh-keygen
[www@localhost root]$ ssh-copy-id www@192.168.11.131

创建普通用户

[root@localhost ~]# vim /etc/sysconfig/jenkins
JENKINS_USER="www"
[root@localhost ~]# chown -R www:www /var/lib/jenkins
[root@localhost ~]# chown -R www:www /var/cache/jenkins
[root@localhost ~]# chown -R www:www /var/log/jenkins
[root@localhost ~]# systemctl stop jenkins
[root@localhost ~]# systemctl start jenkins
[root@localhost ~]# ps -ef |grep jenkins
www : ? :: /etc/alternatives/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= --debug= --handlerCountMax= --handlerCountMaxIdle=
root : pts/ :: grep --color=auto jenkins

修改jenkins配置

#!/bin/bash -ilex
echo "the current shell pwd is $PWD"
echo "the current user is $USER"
echo "start copy file ........"
scp index.html www@192.168.11.131:/usr/share/nginx/html
echo "the file is copy end"

shell脚本示例

jenkins页面设置

1.给当前构建任务添加描述信息

2.设置源码管理后 每次构建的时候都会自动从svn代码仓库中拉取代码到当前jenkins工作空间目录下

3.实现每隔2分钟探测下是否有人提交最新代码到svn中 如果检测到代码发生变化则立马自动构建 否则不会自动构建

4.jenkins从svn拉取到最新代码后执行test1.sh脚本

5.查看构建结果日志

jenkins构建失败自动发送邮件

1.配置邮件发送服务器  以QQ邮箱为示例

jenkins   》  系统管理  》  系统设置

这里输入的密码不是qq登录密码  而是需要在qq邮箱的设置中开启SMTP服务时候获取的16位授权码

QQ邮箱  》 设置  》 帐户 》

2.添加设置构建后操作

Maven的用途

1.从远程仓库中下载项目依赖到的jar包到本地

2.把java代码编译成对应的class文件

3.把下载好的jar包和class文件合并成为一个war包

jenkins和svn搭建自动代码构建发布的更多相关文章

  1. Jenkins+Maven+SVN搭建自动部署、自动测试环境

    .打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...

  2. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  3. Jenkins+Maven+Svn搭建持续集成环境持续集成和自动部署

    Jenkins和Hudson有很深的渊源,Jenkins目前更新频繁,目前选用Jenkins为持续集成工具和自动部署 Jenkins的使用有很多的介绍,主要记录如下要点: 192.168.1.240: ...

  4. Jenkins + GitLab 通过 Webhook 自动触发构建爬坑记录

    前言   在局域网搭建了一个Jenkins服务,用于自动构建和发布,在调通了构建程序之后,想使用内网的GitLab的Webhook功能触发代码推送事件,然后进行自动构建.后来发现在GitLab上做测试 ...

  5. jenkins+maven+svn实现简单的一键发布

    前言      在安装之前,我想说明一下本文的目的,jenkins的一款持续集成工具,      它可以做的事情很多,其中一个主要的功能就是简化部署流程          回想一下我们的发布流程:   ...

  6. jenkins+maven+svn+npm自动发布部署实践

    一.系统版本centos7.6 二.根据jenkins官方安装方法yum安装jenkins 1.进入jenkins官网下载页面https://jenkins.io/download/,选择Red Ha ...

  7. jenkins创建svn项目自动部署

    Exec command ; cd /home/zhxjdk18/server/jenkins_project/owgd_site/admin; rm -rf * ; source .bashrc ; ...

  8. 敏捷开发之产品日日新,一步通之---自动化代码构建->自动化打包->自动化安装部署

    本文将介绍如何自动化实现代码构建,自动化代码打包成exe安装包,自动化安装到测试环境.通过计划任务的方式,每天自动化发布最新的产品供老板展示,供测试人员使用,真正实现敏捷的快速迭代. 自动代码构建 自 ...

  9. Linux CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布

    CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布 by:授客 QQ:1033553122 目录 一.    实践环境. 1 二.    安装 ...

随机推荐

  1. Java8新特性interface中的static方法和default方法

    static方法 java8中为接口新增了一项功能:定义一个或者更多个静态方法.用法和普通的static方法一样. 代码示例 public interface InterfaceA { /** * 静 ...

  2. jQuery创建元素和添加子元素

    var li = $("<li class=\"TopNav arrow\" secondMenu=\"menu_" + i + "\ ...

  3. fastDFS 命令笔记

    端口开放 这是命令运行的前提 iptables -I INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT iptables -I I ...

  4. python serial 模块使用

    python3 开始, python 加入了 serial 操作串口的模块 模块的引用 import serial 串口的申请 serial_com1 = serial.Serial("/d ...

  5. oracle获取过去两年的今天时间

    获取过去两年的今天时间: SELECT last_day(ADD_MONTHS(ADD_MONTHS(sysdate,-12), ROWNUM - 1)) as monthlist FROM DUAL ...

  6. 并发编程(CountDownLatch使用)

    一.简介: Latch意思是:门闩的意思,形象的来说await就是拴上门闩,等到门闩释放后当前线程开始工作. 下面是来自简书上的解释: CountDownlatch是一个多功能的同步工具,可以被用于各 ...

  7. 内存(RAM或ROM)和FLASH存储的真正区别总结

    转载自:http://blog.csdn.net/liangkaiyang/article/details/59556531.什么是内存     什么是内存呢?在计算机的组成结构中,有一个很重要的部分 ...

  8. Java API获取consumer group最新提交位移的时间

    碰到了有人问起这个问题,目前java consumer没有利用OffsetAndMetadata中的metadata字段记录提交的时间,故直接通过java consumer来查询是不行,我们需要直接读 ...

  9. 微信&支付宝 支付单文件操作

    https://github.com/dedemao/weixinPay https://github.com/dedemao/alipay https://www.dedemao.com/alipa ...

  10. Excel导入工具类兼容xls和xlsx

    package com.bj58.finance.platform.operation.provider.util; import org.apache.log4j.Logger; import or ...