jenkins+svn安装

参考资料:java

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

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

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

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

https://jenkins.io/git

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

. 安装环境 web

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

Jenkins: Jenkins ver. 1.650shell

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

 

 

conf目录下的文件的意义

 

 

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

1svnserve.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

 

 

2passwd 用户名口令文件

[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

 

 

3authz 权限配置文件

[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

* =

 

 

启动svn

[root@bogon conf]# svnserve -d -r /mnt/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

 

 

Win端测试

 

 

 

回到svn能够看到

 

 


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

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

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

 

创建Jenkinssvn的帐号

帐户:   svn

密码:  qpmall2017

 

 

完成以上操做后,安装web工具支持apachenginx均可以,为了方便,咱们直接

yum -y install http*

完成后咱们须要对配置文件进行修改

若是有subversion.conf 这个文件就最好,没有的话,本身建立

 

 

[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模块

 

 

最后看看apache默认的端口,能够直接使用80,也能够修改默认端口,为了不冲突,我作了修改

#vim /etc/httpd/conf

 

 

以上作完后,咱们能够启动服务看下效果了

 

 

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

 

 

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

 

 

这个文件在svn服务建立的时候自带的,因此咱们须要在这个文件中加入相关的用户和密码

因此咱们在svnconf目录下

执行#htpasswd -c passwd svn

输入密码123456

——————————

备注htpasswd -c passwd username  增长用户

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

         htpasswd -D passwd username   删除用户

        htpasswd -m passwd username   修改密码             

[user]很是重要,由于用htpasswd的方式加用户会负载掉[users],因此每次加完用户,都须要补一下该节点, 以下图:

 

 

               

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

 

 

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

[root@bogon ~]# service httpd restart

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

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

 

 

 

看提示是由于没有权限被拒绝了,因此咱们须要给这个svn用户一个权限,此时就须要修改

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

 

 

完成后咱们从新启动服务后,效果以下

 

 

此时说明咱们成功的创建了svnapache服务的联系

. 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),出现以下界面

   

 

 

 

按照提示打开密码文件

 

 

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

后出现

 

 

咱们为了偷懒选择安装全部

 

 

完成后界面

 

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

用户名:qpmall

 码:qpmall123

电子邮件:qpmall@qpmall.com

完成后点击Save and finsh

此时会提示你完成

 

 

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

 

 

如今开始安装自动化须要的插件Publish OverSVN Publisher 

过程以下

 

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

如今要保证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.           |

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

完成后有如下文件

 

 

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

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

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

如今jenkins服务器可免密码直接登录应用服务器,以下图

 

Passphrase:密码(key的密码,若是你设置了)

Path to keykey文件(私钥)的路径

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

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

Username:用户名

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

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

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

 

 

 

果有多台应用服务器,能够点击增长,配置多个“SSH Servers”

点击保存以保存配置

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

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

在配置最后找到增长构建后操做步骤,选择"Send build artifacts over SSH"

  

能够选择git或者svn仓库,可是咱们用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

 

 

 

点击 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: 空

 

 

点击 ok Credential 就建立好了。

若是你再新建 Job 就能够看到咱们的 Credential 选项了:

 

 

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

 

 

而后保存,执行。

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

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

 

 

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

当你创建好一个job后,会有一个工做空间,以下图

 

 

 

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

 

 

要告诉Jenkinspom.xml放到这里,不然会在job里面提示找不到相关文件(这里能够自动放,也能够手动放,看须要)

文件内容大体以下

 

 

 

在你的job里面选择以下

 

 

而后在命令栏中输入你想要的操做

 

 

若是不想使用shell,也能够用别的好比ant

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

 

 

完成后能够执行job

 

 

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

相关文章
相关标签/搜索