zoukankan      html  css  js  c++  java
  • jenkins+svn安装

    参考资料:

    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

     

    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

     

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

    留个脚印,没事看看自己多无聊
  • 相关阅读:
    c++程序—冒泡排序法(函数、指针)
    c++程序—统计成绩
    c++程序—冒泡排序法
    c++程序—逆置
    c++程序—五只小猪称体重
    c++程序—goto
    c++程序—乘法表
    c++程序—循环嵌套
    RGB保存 .bmp文件踩坑记
    vdi文件扩容
  • 原文地址:https://www.cnblogs.com/fatyao/p/7771849.html
Copyright © 2011-2022 走看看