最全3臺虛擬機SVN+Jenkins環(huán)境搭建

準備階段

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
網(wǎng)盤地址:鏈接:https://pan.baidu.com/s/1hmV0YgR_m4OphjE9XtWMcA
提取碼:ayzo

創(chuàng)建3個虛擬機
1.CI-Subversion 部署svn
2.CI-Jenkins 部署Jenkins(需要JDK tomcat maven)
3.CI-ApplicationServer 部署應(yīng)用(需要JDK tomcat環(huán)境)

虛擬機我是用VirtualBox創(chuàng)建的,個人感覺很方便,輕巧

1.CI-Subversion

第一步:通過yum命令安裝svnserve,命令如下:

yum -y install subversion

第二步:創(chuàng)建版本庫目錄(此僅為目錄,為后面創(chuàng)建版本庫提供存放位置)

mkdir /svn/svnrepos

第三步:創(chuàng)建svn版本庫

在第二步建立的路徑基礎(chǔ)上,創(chuàng)建版本庫,命令如下

svnadmin create /svn/svnrepos/demo

創(chuàng)建成功后,進入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

第四步:配置修改

進入已經(jīng)創(chuàng)建好的版本庫目錄下,也就是前文說創(chuàng)建的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:負責(zé)賬號權(quán)限的管理,控制賬號是否讀寫權(quán)限
passwd:負責(zé)賬號和密碼的用戶名單管理
svnserve.conf:svn服務(wù)器配置文件

1.編輯 authz 文件(注意:[/]也是必須的)

1.png

[/] 表示根目錄,即 /svn/svnrepos
fancl = rw 表示用戶fancl對根目錄具有讀寫權(quán)限。

2.編輯 passwd 文件

2.png

如上所示,用戶名為:fancl,認證密碼為:123456
3.編輯 svnserve.conf 文件(注意:配置的前面不能有空格,一定要頂格寫)


3.png

anon-access = none:表示禁止匿名用戶訪問。
auth-access = write:表示授權(quán)用戶擁有讀寫權(quán)限。
password-db = passswd:指定用戶名口令文件,即 passwd 文件。
authz-db = authz:指定權(quán)限配置文件,即 authz 文件。
realm = /var/svnrepos:指定認證域,即 /svn/svnrepos 目錄

第五步:防火墻開啟(這里以iptable防火墻為例, 注意:如果防火墻關(guān)閉 就無需這一步設(shè)置)

多數(shù)情況下服務(wù)器安裝完成,配置完成后,無法連接svn服務(wù)器,均是防火墻問題【注意:如果是阿里云,騰訊云的服務(wù)器,還需在安全組添加端口開啟規(guī)則】

vi /etc/sysconfig/iptables

添加配置信息

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

保存退出

systemctl restart iptables.service #重啟防火墻使配置生效

第六步 啟動svn服務(wù)器(重啟虛擬機 需要重新啟動svn服務(wù))

svnserve -d -r /svn/svnrepos

啟動成功后,可用ps -aux查看服務(wù)啟動是否成功

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服務(wù)器

在windows客戶端,輸入地址:svn://ip地址:3690/xxxx (iP地址為你linux的ip,xxxx為前文創(chuàng)建的版本庫名稱,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打包后部署到其他服務(wù)器tomcat中

Jenkins修改顯示語言為中文(可以參考這里)

修改 jenkins配置

5.png

別名一定要取 后面會用到(供選擇 下拉框)
maven中setting配置 自己要修改好
比如:本地倉庫文件夾創(chuàng)建配置 (/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) (不再累贅復(fù)述)

4.基礎(chǔ)環(huán)境都配置完成 開始配置jenkins

4.png

第一步,jenkins創(chuàng)建任務(wù)

7.png

配置源碼管理

8.png

3中點進去添加svn用戶,密碼


9.png

選擇一個用戶


10.png

構(gòu)建配置

11.png

12.png

構(gòu)建后配置

13.png

14.png

構(gòu)建觸發(fā)器

就是身份令牌 可以寫的長點 復(fù)雜點

15.png
JENKINS_URL=http://192.168.56.201:8080/jenkins
/job/demo/build?token=   #除了demo是任務(wù)名稱外  其他是一樣的
fcl_demo  #就是身份令牌  可以寫的長點 復(fù)雜點

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

最后一步,就是在svn服務(wù)器上配置鉤子程序

進入到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]# 

復(fù)制一份post-commit.tmpl

cp post-commit.tmpl post-commit   ##注意復(fù)制的那份沒有任何后綴  post-commit

修改post-commit內(nèi)容

#別的東西注釋掉
# 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任務(wù)中配置的觸發(fā)器

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

chmod 755 post-commit

補充
如果發(fā)生 Jenkins 服務(wù)器從 SVN 服務(wù)器下載代碼不是最新版的情況,那么就在 SVN服務(wù)器的 URL 地址后面加上@HEAD 強制要求下載最新版


16.png

終于到這一步結(jié)束了, 有哪里不懂可以評論回復(fù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容