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. 批量生产Xcode group 并映射 实体目录

    xaddgroup A Ruby gem . Batch Add Group To Xcodeproj , map Real Dir. Install $ gem install xaddgroup ...

  2. 初识go的tomb包

    在分析github.com/hpcloud/tail 这个包的源码的时候,发现这个包里用于了一个另外一个包,自己也没有用过,但是这个包在tail这个包里又起来非常大的作用 当时并没有完全弄明白这个包的 ...

  3. 音视频编解码: YUV存储格式中的YUV420P,YUV420SP,NV12, NV21理解(转)

    概述  之前介绍了YUV码流的采样格式,下面分析下YUV码流的存储格式,YUV码流的存储格式与采样格式息息相关.总的来讲,YUV存储格式主要分为两种: planar 平面格式 指先连续存储所有像素点的 ...

  4. 【转】RPC简单介绍

    RPC简单介绍 RPC 1. RPC是什么 RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络 ...

  5. CAS单点登陆,URL多出个参数jsessionid导致登陆失败问题

    目录: 1.定位问题 2.问题产生的原因 3.解决问题 一 定位问题 首先,如下图所示:输入到地址栏的地址被302重定向到单点登录地址,地址由Response Headers中的参数Location所 ...

  6. java.lang.NoClassDefFoundError: javax/annotation/Priority

    异常内容: 2017-09-25-15-02 [localhost-startStop-1] [org.springframework.web.context.ContextLoader] [ERRO ...

  7. Android打开doc、xlsx、ppt等office文档解决方案

    妹子我写代码很辛苦/(ㄒoㄒ)/~~ ,转载请标明出处哦~http://blog.csdn.net/u011791526/article/details/73088768 1.Android端有什么控 ...

  8. application.properties配置文件

    SpringBoot可以识别两种格式的配置文件,分别是yml文件与properties文件,可以将application.properties文件换成application.yml applicati ...

  9. mysql主从复制-方案2

    MySQL主从介绍 (两台机器数据同步) 主:-->binlog 从:-->relaylog 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/ ...

  10. 【Python】博客信息爬取-微信消息自动发送

    1.环境安装 python -m pip install --upgrade pip pip install bs4 pip install wxpy pip install lxml 2.博客爬取及 ...