jenkins+svn安装

时间:2022-12-14 23:02:40

参考资料:

http://blog.csdn.net/wuxuehong0306/article/details/50016547

https://www.ibm.com/developerworks/cn/opensource/os-autotesting-jenkins-testing/

http://www.imooc.com/article/12626

http://aoyouzi.iteye.com/blog/2294990

https://jenkins.io/

资源包:链接:http://pan.baidu.com/s/1qYibCAS 密码:u4m7

一. 安装环境

System: CentOS 6.8x64 (deploy.example.com)

Jenkins: Jenkins ver. 1.650

Ansible: Ansible 2.1.0

Gitlab: GitLab 7.14.3

Svn安装

[root@bogon ~]# yum install subversion (SVN服务器)
                    mysql-server (用于codestriker)
                     httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
                     sendmail (用于配置用户提交代码后发邮件提醒)
                     wget gcc-c++ make unzip perl* (必备软件包)
                     ntsysv vim-enhanced (可选)

基本的SVN服务器配置
新建一个目录用于存储SVN所有文件

# mkdir /mnt/svn

新建一个版本仓库

#svnadmin create /mnt/svn/project

jenkins+svn安装

在conf目录下的文件的意义

jenkins+svn安装

authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

(1)svnserve.conf:  svn服务配置文件。

其中关于svnserve.conf的文件配置项分为以下5项 而且这写是需要打开的,详细解释如下

anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录建议使用相同的用户名口令数据文件

下面是本机配置

[root@bogon conf]# cat svnserve.conf | grep -v '^#' | grep -v '^$'

[general]

anon-access = none

auth-access = write

password-db = /mnt/svn/project/conf/passwd

authz-db = /mnt/svn/project/conf/authz

realm = /mnt/svn/project

jenkins+svn安装

(2)passwd: 用户名口令文件

在[users]块中添加用户和密码,格式:帐号=密码,如quwenzhe=123456

在svnserve.conf文件里启用这个文件。然后配置如下:

[root@bogon conf]# cat passwd | grep -v '^#' | grep -v '^$'

[users]

text=123456

pm=123456

server_group=123456

client_group=123456

text_group=123456

jenkins+svn安装

(3)authz: 权限配置文件

[root@bogon conf]# cat authz | grep -v '^#' | grep -v '^$'

[aliases]

[groups]

project_p=pm,text

project_s=server_group

project_c=client_group

project_t=test_group

[project:/]

@project_p=rw

* =

[project:/server]

@project_p=rw

@project_s=rw

* =

jenkins+svn安装

启动svn

[root@bogon conf]# svnserve -d -r /mnt/svn

jenkins+svn安装

完成后测试svn是否正常

Linux端测试

#检测版本库

svn checkout  svn://172.16.110.233/project/  --username=text --password=123456

#删掉不要的版本svn cl --remove  文件名

[root@bogon db]# svn --username=pm co svn://172.16.110.233/project

jenkins+svn安装

Win端测试

jenkins+svn安装

jenkins+svn安装

回到svn可以看到

jenkins+svn安装

Linux客户端(清除本地缓存)
方法一:
linux下删除~/.subversion/auth即可清除之前的用户名和密码:rm -rf ~/.subversion/auth

以后再操作svn会提示你输入用户名,这时就可以使用新的了

方法二:
svn操作时带上–username参数,比如svn –username=smile co svn_path local_path

建立Jenkins到svn的账号

账户:   svn

密码:  qpmall2017

jenkins+svn安装

完成以上操作后,安装web工具支持apache和nginx都可以,为了方便,我们直接

yum -y install http*

完成后我们需要对配置文件进行修改

如果有subversion.conf 这个文件就最好,没有的话,自己创建

jenkins+svn安装

[root@bogon conf.d]# vim subversion.conf

<Location /svn>

DAV svn

SVNListParentPath on

SVNParentPath /mnt/svn                    #svn的根目录

AuthType Basic                            #Basic认证方式

AuthName "Authorization"                  #认证时显示的信息

AuthUserFile /mnt/svn/project/conf/passwd    #用户文件

AuthzSVNAccessFile /mnt/svn/project/conf/authz    #访问权限控制文件

Require valid-user                             #要求真实用户,不能匿名

</Location>

然后看看apache是否支持svn模块

jenkins+svn安装

最后看看apache默认的端口,可以直接使用80,也可以修改默认端口,为了避免冲突,我做了修改

#vim /etc/httpd/conf

jenkins+svn安装

以上做完后,我们可以启动服务看下效果了

jenkins+svn安装

尽管svn在之前的测试时是好的,但是和apache服务搭配后,无限循环在下面的页面,直到报错,所有的svn用户都进不去(svn的conf文件中的passwd记录的用户)

jenkins+svn安装

经过排查,发现是apache的自动模块的用户没有加入到svn的passwd文件中

jenkins+svn安装

这个文件在svn服务创建的时候自带的,所以我们需要在这个文件中加入相关的用户和密码

所以我们在svn的conf目录下

执行#htpasswd -c passwd svn

输入密码123456

——————————

备注htpasswd -c passwd username  增加用户

只有第一个用户加-c,其余用户不用-c

htpasswd -D passwd username   删除用户

htpasswd -m passwd username   修改密码

加[user]非常重要,因为用htpasswd的方式加用户会负载掉[users],所以每次加完用户,都需要补一下该节点, 如下图:

jenkins+svn安装

————————————————

jenkins+svn安装

此时svn用户已经备加入用户组了,我们重新启动服务

[root@bogon ~]# service httpd restart

[root@bogon ~]# svnserve -d -r /mnt/svn

虽然安全进入,但是此时又报错了

jenkins+svn安装

看提示是因为没有权限被拒绝了,所以我们需要给这个svn用户一个权限,此时就需要修改

/mnt/svn/project/conf/authz文件中的权限了,修改完成后如下:

jenkins+svn安装

完成后我们重新启动服务后,效果如下

jenkins+svn安装

此时说明我们成功的建立了svn和apache服务的联系

三. Jenkins配置

#  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  -y  install jenkins

#vim /etc/sysconfig/jenkins

[root@bogon ~]# cat /etc/sysconfig/jenkins | grep -v '^#'| grep -v '^$'

JENKINS_HOME="/home/qpmall/jenkins"

JENKINS_JAVA_CMD=""

JENKINS_USER="root"

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

JENKINS_PORT="8080"

JENKINS_LISTEN_ADDRESS=""

JENKINS_HTTPS_PORT=""

JENKINS_HTTPS_KEYSTORE=""

JENKINS_HTTPS_KEYSTORE_PASSWORD=""

JENKINS_HTTPS_LISTEN_ADDRESS=""

JENKINS_DEBUG_LEVEL="5"

JENKINS_ENABLE_ACCESS_LOG="no"

JENKINS_HANDLER_MAX="100"

JENKINS_HANDLER_IDLE="20"

JENKINS_ARGS=""

登录网页(http://IP:8080),出现如下界面

jenkins+svn安装

按照提示打开密码文件

jenkins+svn安装

在登陆页中的password处输入7df23528ef4b42e685718c5fd645d9f3

后出现

jenkins+svn安装

我们为了偷懒选择安装所有

jenkins+svn安装

完成后界面

jenkins+svn安装

这里有2个选择,一个是用原先他给你的那个用户名和密码(点击左下方as admin),一个是建立自己的,我们这里自己创建一个

用户名:qpmall

密  码:qpmall123

电子邮件:qpmall@qpmall.com

完成后点击Save and finsh

此时会提示你完成

jenkins+svn安装

完成后的界面,如下,中文的,开心吗,O(∩_∩)O哈哈~

jenkins+svn安装

现在开始安装自动化需要的插件Publish Over和SVN Publisher

过程如下

jenkins+svn安装

jenkins+svn安装

jenkins+svn安装

jenkins+svn安装

在这个页面进行配置的修改,程序的设定和维护

现在要保证jenkins和引用服务器的联通性

在Jenkins服务器中做如下操作

[root@bogon ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

30:95:9a:43:ed:4e:a3:ad:0a:b7:72:e2:8e:74:66:77 root@bogon

The key's randomart image is:

+--[ RSA 2048]----+

|       ...       |

|      ..o        |

|     .o+         |

|      +o+        |

|       *S.       |

|      . o        |

| ..+.. E         |

|..*oo.o          |

|.oo+o.           |

+-----------------+

完成后有以下文件

jenkins+svn安装

在jenkinsfs服务器的家目录~/.ssh/下会有私钥id_rsa和公钥id_rsa.pub

在应用服务器上创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并将jenkins服务器的公钥id_rsa.pub中的内容复制到authorized_keys文件

应用服务器上重启ssh服务,service sshd restart

现在jenkins服务器可免密码直接登陆应用服务器,如下图

jenkins+svn安装

jenkins+svn安装

Passphrase:密码(key的密码,如果你设置了)

Path to key:key文件(私钥)的路径

SSH Server Name:标识的名字(随便你取什么)

Hostname:需要连接ssh的主机名或ip地址,此处填写应用服务器IP(建议ip)

Username:用户名

Remote Directory:远程目录(根据需要填写文件传到此目录下)

“Use password authentication, or use a different key”:使用密码验证(这里使用了密钥认证所以不开启)

配置完成后可点击“Test Configuration”测试到目标主机的连接,出现”success“则成功连接

jenkins+svn安装

jenkins+svn安装

如果有多台应用服务器,可以点击”增加“,配置多个“SSH Servers”

点击“保存”以保存配置

系统配置好ssh连接后,到项目配置中配置构建后发布的步骤

点击(项目名“fin_test1”–>左侧菜单的“配置”)来更改项目的配置

在配置最后找到“增加构建后操作步骤”,选择"Send build artifacts over SSH"

jenkins+svn安装

可以选择git或者svn仓库,但是我们用svn

jenkins+svn安装

jenkins+svn安装

——————————————————————

PS:这里介绍下如何添加 Credentials

在 jenkins 上设置 Credentials,然后再新建job的时候使用设置的 Credentials 即可

在jenkins界面,依次点击: Credentials -> System -> Add domain:
Domain Name: 填写你git服务器的地址,如 github.xxx.com
Description: 随便写一点描述,如 This is the Credential for github

jenkins+svn安装

点击 ok 后,在点击 “adding some credentials?”

进入页面后,可以选择 Username with password 或者 SSH Username with private key, 根据你的情况选择,这里我们选择 Username with private key:

Username: 随便起一个名字,以便在创建 Job 的时候使用该 Credential
Private Key:可以指定文件,也可以使用默认的 ~/.ssh,当然也可以直接将私钥复制粘贴到此处。
Passphrase: 如果你在创建 ssh key 的时候输入了 Passphrase 那就填写相应的Passphrase,为空就不填写
ID: 空
Description: 空

jenkins+svn安装

点击 ok 后 Credential 就创建好了。

如果你再新建 Job 就可以看到我们的 Credential 选项了:

jenkins+svn安装

——————————————————————————————————

jenkins+svn安装

jenkins+svn安装

jenkins+svn安装

然后保存,执行。

现在一套自动跟新系统完成了,如果是代码上线,这个很合适。

如果是java上线的话,这个架构需要在优化一下,比如比对文件和重启tomcat

jenkins+svn安装

关于Jenkins的自动打包(这个是自动化部署的前提)

当你建立好一个job后,会有一个工作空间,如下图

jenkins+svn安装

jenkins+svn安装

这个pom.xml文件很重要,关系到maven是否打包成功,记得问开发要,理论上开发给你的是正确版的(他们自己打包测试过),里面会有各种聚会和私服地址,还有模块等内容

jenkins+svn安装

要告诉Jenkins把pom.xml放到这里,否则会在job里面提示找不到相关文件(这里可以自动放,也可以手动放,看需要)

文件内容大致如下

jenkins+svn安装

jenkins+svn安装

在你的job里面选择如下

jenkins+svn安装

然后在命令栏中输入你想要的操作

jenkins+svn安装

如果不想使用shell,也可以用别的比如ant等

这里我用的shell命令和脚本来完成包java包的备份和部署

jenkins+svn安装

完成后可以执行job了

jenkins+svn安装

jenkins+svn安装

jenkins+svn安装

jenkins+svn安装

此版本是测试环境,还有需要完善的地方,等正式线上没有问题后,会再次更新本文档

jenkins+svn安装的更多相关文章

  1. jenkins&plus;svn 打包部署上传服务器并正常运行项目,从安装到使用

    以前写过一个版本,jenkins打包部署的全果然,然后...没保存,现在重新写一个版本从按照开始. 项目平时部署情况,svn拉代码,开发打包后进行给测试,测试上传到跳板机,杀掉以前项目进程,上传到服务 ...

  2. 使用Maven&plus;Nexus&plus;Jenkins&plus;Svn&plus;Tomcat&plus;Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  3. Jenkins&plus;svn&plus;maven

    首先我们在我们的服务器上安装好svn和maven 这里在前两步骤基本上没有啥问题,主要就是在Jenkins的步骤我弄了好长时间,这里记录一下 Jenkins的问题我是在这个网址解决的:http://b ...

  4. Maven&plus;Nexus&plus;Jenkins&plus;Svn&plus;Tomcat&plus;Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  5. Jenkins详细安装与构建部署使用教程(转)

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1.持续的软件版本发布 ...

  6. jenkins&plus;svn&plus;gradle自动化部署笔记

    自己虚拟机jekins配置:(jenkins+svn+gradle)自动化部署,1.linux配置好jdk,解压tomcat,将 jenkins.war翻到webapps目录下.2.系统管理-管理用户 ...

  7. Jenkins的安装与系统配置

    Jenkins的安装 Jenkins的安装需要一个安装包:http://pan.baidu.com/s/1hqQBruc,也可以去Jenkins官网上下载,Jenkins的官网地址 http://Je ...

  8. 老李分享:持续集成学好jenkins之安装

    老李分享:持续集成学好jenkins之安装   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  9. 最全Jenkins&plus;SVN&plus;iOS&plus;cocoapods环境搭建及其错误汇总

    前言 持续集成是敏捷开发中重要的一部分,为保证新功能的开发,又保证旧功能的维护,从一个冲刺到下个冲刺.持续集成工具是我们保证开发和维护并行的护航者,现在流行的集成工具有很多,例如: 1.Jenkins ...

随机推荐

  1. nginx 日志变量含义

    log_format logstash "remote_addr | $time_local | $request | $status | $body_bytes_sent | " ...

  2. 【leetcode】Letter Combinations of a Phone Number

    Letter Combinations of a Phone Number Given a digit string, return all possible letter combinations ...

  3. arrow css

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 单选项框RadioGroup的综合应用

    大家好,我们今天这一节要介绍的是RadioGroup 的组事件.RadioGroup 可将各自不同的RadioButton ,设限于同一个Radio 按钮组,同一个RadioGroup 组里的按钮,只 ...

  5. Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试

    如果在面试或与资深人事交流的过程中,你能有效合理地展示出本章所给出的一些知识点,那么对你的评价就会是"对数据库有深入了解",甚至能加上"有设计数据表的经验",即 ...

  6. java使用ssh远程操作linux 提交spark jar

    maven依赖 <!--Java ssh-2 --><dependency> <groupId>ch.ethz.ganymed</groupId> &l ...

  7. Attribute2Image --- Conditional Image Generation from Visual Attributes 论文笔记

     Attribute2Image --- Conditional Image Generation from Visual Attributes Target: 本文提出一种根据属性生成图像的产生式模 ...

  8. form表单自动回车提交

    对于使用了submit按钮的form表单,浏览器会直接建立回车与submit按钮之间的关联

  9. oracle 游标简单案例

    oracle  游标简单案例 一.案例: DECLARE IDO NUMBER; DABH CHAR); t_count ); CURSOR TJ_CURSOR IS SELECT IDO,DABH ...

  10. 安装QConf 报错及解决方案

    1:提示找不到gdbm.h头文件 /alidata/QConf/agent/qconf_dump.cc:1:18: fatal error: gdbm.h: No such file or direc ...