美文网首页程序员
最全3台虚拟机SVN+Jenkins环境搭建

最全3台虚拟机SVN+Jenkins环境搭建

作者: 月下饿狼 | 来源:发表于2020-07-13 17:37 被阅读0次

    准备阶段

    1.apache-tomcat-7.0.75.tar.gz
    2.jdk-8u121-linux-x64.tar.gz
    3.apache-maven-3.6.3-bin.tar.gz
    4.jenkins.war
    网盘地址:链接:https://pan.baidu.com/s/1hmV0YgR_m4OphjE9XtWMcA
    提取码:ayzo

    创建3个虚拟机
    1.CI-Subversion 部署svn
    2.CI-Jenkins 部署Jenkins(需要JDK tomcat maven)
    3.CI-ApplicationServer 部署应用(需要JDK tomcat环境)

    虚拟机我是用VirtualBox创建的,个人感觉很方便,轻巧

    1.CI-Subversion

    第一步:通过yum命令安装svnserve,命令如下:

    yum -y install subversion
    

    第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

    mkdir /svn/svnrepos
    

    第三步:创建svn版本库

    在第二步建立的路径基础上,创建版本库,命令如下

    svnadmin create /svn/svnrepos/demo
    

    创建成功后,进入xxxx目录下

    cd /svn/svnrepos/demo
    

    进入目录,可以看见如下文件信息:

    [root@CI-node1 demo]# ll
    total 8
    drwxr-xr-x. 2 root root  54 Jul 13 02:31 conf
    drwxr-sr-x. 6 root root 253 Jul 14 00:12 db
    -r--r--r--. 1 root root   2 Jul 13 02:17 format
    drwxr-xr-x. 2 root root 250 Jul 13 15:59 hooks
    drwxr-xr-x. 2 root root  41 Jul 13 02:17 locks
    -rw-r--r--. 1 root root 229 Jul 13 02:17 README.txt
    

    下面是这些目录的详细讲解


    目录文件夹详解.jpg

    第四步:配置修改

    进入已经创建好的版本库目录下,也就是前文说创建的demo,进入conf

    [root@CI-node1 conf]# ll
    total 12
    -rw-r--r--. 1 root root 1095 Jul 13 02:19 authz
    -rw-r--r--. 1 root root  327 Jul 13 02:20 passwd
    -rw-r--r--. 1 root root 3074 Jul 13 02:31 svnserve.conf
    

    authz:负责账号权限的管理,控制账号是否读写权限
    passwd:负责账号和密码的用户名单管理
    svnserve.conf:svn服务器配置文件

    1.编辑 authz 文件(注意:[/]也是必须的)

    1.png

    [/] 表示根目录,即 /svn/svnrepos
    fancl = rw 表示用户fancl对根目录具有读写权限。

    2.编辑 passwd 文件

    2.png

    如上所示,用户名为:fancl,认证密码为:123456
    3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)


    3.png

    anon-access = none:表示禁止匿名用户访问。
    auth-access = write:表示授权用户拥有读写权限。
    password-db = passswd:指定用户名口令文件,即 passwd 文件。
    authz-db = authz:指定权限配置文件,即 authz 文件。
    realm = /var/svnrepos:指定认证域,即 /svn/svnrepos 目录

    第五步:防火墙开启(这里以iptable防火墻为例, 注意:如果防火墙关闭 就无需这一步设置)

    多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】

    vi /etc/sysconfig/iptables
    

    添加配置信息

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
    

    保存退出

    systemctl restart iptables.service #重启防火墙使配置生效
    

    第六步 启动svn服务器(重启虚拟机 需要重新启动svn服务)

    svnserve -d -r /svn/svnrepos
    

    启动成功后,可用ps -aux查看服务启动是否成功

    ps -ef | grep 'svnserve'
    
    [root@CI-node1 conf]# ps -ef | grep 'svnserve'
    root      1002     1  0 Jul13 ?        00:00:00 svnserve -d -r /svn/svnrepos
    root      1376   975  0 00:37 pts/0    00:00:00 grep --color=auto svnserve
    [root@CI-node1 conf]# 
    

    七:客户端访问svn服务器

    在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
    弹出输入用户名和密码,输入即可访问

    2.CI-Jenkins

    软件安装目录

    JDK:/jdk/jdk1.8.0_121
    maven:/mvn/apache-maven-3.6.3
    tomcat:/usr/local/tomcat/apache-tomcat-7.0.75

    修改 /etc/profile 配置

    export JAVA_HOME=/jdk/jdk1.8.0_121 
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 
    export PATH=$PATH:$JAVA_HOME/bin
    
    export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-7.0.75
    
    export MAVEN_HOME=/mvn/apache-maven-3.6.3
    export PATH=$MAVEN_HOME/bin:$PATH
    

    修改完运行下面命令

    source /etc/profile  ##重启配置
    

    安装tomcate

    tomcat-user.xml 配置

    <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
    

    配置编码 添加 URIEncoding="UTF-8"

    <Connector executor="tomcatThreadPool"
                   port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>
    

    把jenkins.war 包放到tomcat的webapps目录下

    然后启动成功 : ./startup.sh

    [root@CI-node3 bin]# ./startup.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-7.0.75
    Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-7.0.75
    Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-7.0.75/temp
    Using JRE_HOME:        /jdk/jdk1.8.0_121
    Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-7.0.75/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-7.0.75/bin/tomcat-juli.jar
    Tomcat started.
    [root@CI-node3 bin]# 
    

    登录Jenkins 地址:http://192.168.56.201:8080/jenkins/

    秘钥地址:vi /root/.jenkins/secrets/initialAdminPassword

    需要添加两个插件

    1.Subversion Plug-in      #svn插件,可以获取到项目代码
    2.Deploy to container Plugin     ##maven打包后部署到其他服务器tomcat中
    

    Jenkins修改显示语言为中文(可以参考这里)

    修改 jenkins配置

    5.png

    别名一定要取 后面会用到(供选择 下拉框)
    maven中setting配置 自己要修改好
    比如:本地仓库文件夹创建配置 (/maven_repository)
    阿里云加速下载(如下面配置)

    <localRepository>/maven_repository</localRepository>
    ##
    <mirrors>
      <mirror>  
           <id>nexus-aliyun</id>  
           <mirrorOf>*</mirrorOf>  
           <name>Nexus aliyun</name>  
           <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
        </mirror>
      </mirrors>
    ##
    <profile>
            <id>jdk-1.8</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>
    

    另外一个jenkins配置

    6.png

    3.CI-ApplicationServer 同 2.CI-Jenkins 一样 只需要安装(JDK 、tomcat) (不再累赘复述)

    4.基础环境都配置完成 开始配置jenkins

    4.png

    第一步,jenkins创建任务

    7.png

    配置源码管理

    8.png

    3中点进去添加svn用户,密码


    9.png

    选择一个用户


    10.png

    构建配置

    11.png
    12.png

    构建后配置

    13.png
    14.png

    构建触发器

    就是身份令牌 可以写的长点 复杂点

    15.png
    JENKINS_URL=http://192.168.56.201:8080/jenkins
    /job/demo/build?token=   #除了demo是任务名称外  其他是一样的
    fcl_demo  #就是身份令牌  可以写的长点 复杂点
    

    组合起来就是【http: //192.168.56.201:8080/jenkins/job/demo/build?token=fcl_demo】

    最后一步,就是在svn服务器上配置钩子程序

    进入到svn中demo的目录下

    [root@CI-node1 demo]# ll
    total 8
    drwxr-xr-x. 2 root root  54 Jul 14 00:31 conf
    drwxr-sr-x. 6 root root 253 Jul 14 00:12 db
    -r--r--r--. 1 root root   2 Jul 13 02:17 format
    drwxr-xr-x. 2 root root 250 Jul 14 01:40 hooks
    drwxr-xr-x. 2 root root  41 Jul 13 02:17 locks
    -rw-r--r--. 1 root root 229 Jul 13 02:17 README.txt
    [root@CI-node1 demo]# 
    

    进入hooks目录下

    [root@CI-node1 hooks]# ll
    total 40
    -rwxr-xr-x. 1 root root 2107 Jul 13 15:59 post-commit
    -rw-r--r--. 1 root root 1977 Jul 13 02:17 post-commit.tmpl
    -rw-r--r--. 1 root root 1638 Jul 13 02:17 post-lock.tmpl
    -rw-r--r--. 1 root root 2289 Jul 13 02:17 post-revprop-change.tmpl
    -rw-r--r--. 1 root root 1567 Jul 13 02:17 post-unlock.tmpl
    -rw-r--r--. 1 root root 3426 Jul 13 02:17 pre-commit.tmpl
    -rw-r--r--. 1 root root 2434 Jul 13 02:17 pre-lock.tmpl
    -rw-r--r--. 1 root root 2786 Jul 13 02:17 pre-revprop-change.tmpl
    -rw-r--r--. 1 root root 2122 Jul 13 02:17 pre-unlock.tmpl
    -rw-r--r--. 1 root root 2780 Jul 13 02:17 start-commit.tmpl
    [root@CI-node1 hooks]# 
    

    复制一份post-commit.tmpl

    cp post-commit.tmpl post-commit   ##注意复制的那份没有任何后缀  post-commit
    

    修改post-commit内容

    #别的东西注释掉
    # REPOS="$1"
    # REV="$2"
    #别的东西注释掉
    # mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
    #curl的命令  如果你虚拟机没有  自己安装个curl
    curl -X post -v -u admin:e10a2382a7f84ece8428f5e6cb5a4f92 http://192.168.56.201:8080/jenkins/job/demo/build?token=fcl_demo
    

    注意:#curl的命令 如果你虚拟机没有 自己安装个curl

    admin:e10a2382a7f84ece8428f5e6cb5a4f92 这个是jenkins的账号密码

    http ://192.168.56.201:8080/jenkins/job/demo/build?token=fcl_demo 这个就是jenkins任务中配置的触发器

    使用chmod 命令修改成可运行程序

    chmod 755 post-commit
    

    补充
    如果发生 Jenkins 服务器从 SVN 服务器下载代码不是最新版的情况,那么就在 SVN服务器的 URL 地址后面加上@HEAD 强制要求下载最新版


    16.png

    终于到这一步结束了, 有哪里不懂可以评论回复

    相关文章

      网友评论

        本文标题:最全3台虚拟机SVN+Jenkins环境搭建

        本文链接:https://www.haomeiwen.com/subject/dbhacktx.html