Centos 6.* 部署subversion 整合 svnadmin WEB管理介面
前言:
SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個專案,共用資源的目的。當然也可用於檔案文件型別的共享。
SvnAdmin是一個 Java 開發的管理 Svn 伺服器的專案使用者的 web 應用。安裝好 Svn 伺服器端好,把 Svn Admin 部署到 Tomcat ,就可以通過 web 瀏覽器管理 Svn 的專案,管理專案的使用者,管理專案的許可權。使得管理配置 Svn 簡便,再也不需要每次都到伺服器手工修改配置檔案。
一:環境介紹
1.作業系統:Centos 6.* ( 雙核4G、硬碟至少20G)
2.應用軟體:
apr、apr-util、apache subversion、sqlite-amalgamation、jdk、apache-tomcat、svnadmin、mysql
二:軟體下載
(下載最新版本即可)
apr、apr-util 下載:http://apr.apache.org/download.cgi
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
apache subversion 下載:http://subversion.apache.org/download.cgi
subversion-1.9.5.tar.gz
sqlite-amalgamation-*下載:http://www.sqlite.org/download.html
sqlite-amalgamation-3190300.zip
jdk下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jdk-8u131-linux-x64.tar.gz
apache tomcat 下載:http://tomcat.apache.org/download-70.cgi
apache-tomcat-7.0.78.tar.gz
svnadmin專案下載(需要VPN連線):https://code.google.com/archive/p/jsvnadmin/downloads
svnadmin-3.0.5.zip
二:安裝subversion
1.yum 安裝依賴庫
yum install unzip openssh-clients zlib zlib-devel gcc-c++ -y
2.編譯安裝 apr 和 apr-util
tar -zxf apr-1.5.2.tar.gz
cd /root/apr-1.5.2
./configure --prefix=/usr/local/apr && make && make install
tar -zxf apr-util-1.5.4.tar.gz
cd /root/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
3.編譯安裝subversion
tar -zxf subversion-1.9.5.tar.gz
unzip sqlite-amalgamation-3071501.zip
mv sqlite-amalgamation-3071501 subversion-1.9.5/sqlite-amalgamation
cd subversion-1.9.5
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib --enable-maintainer-mode
make
make install
4.將subversion 加入系統環境變數
echo "export SVN_HOME=\"/usr/local/subversion\"
export PATH=\"\$PATH:\$SVN_HOME/bin\"" >> /etc/profile
source /etc/profile
5.建立subversion庫
mkdir /opt/subversion/svn/test -p
svnadmin create /opt/subversion/svn/test
6.指定庫 指定埠 啟動subversion
svnserve -d -r /opt/subversion/svn --listen-port=3690
檢視svn埠3690是否存在
netstat -ntpl
防火牆開啟3690埠
vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
重啟防火牆
/etc/init.d/iptables restart
檢視防火牆
iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3690
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
二:部署svnadmin
1.安裝jdk,將jdk的tar包解壓,然後加入系統環境變數即可
tar -zxf jdk-8u131-linux-x64.tar.gz -C /usr/local
編輯/etc/profile檔案在末尾加入下列語句
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_131
JRE_HOME=/usr/local/jdk1.8.0_131/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HOME/bin:/sbin:/usr/bin:/usr/sbinexport:/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/root/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
source /etc/profile
[root@localhost ~]#java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
至此jdk安裝完畢
2.mysql的安裝請轉到http://www.jianshu.com/p/d9f33d1189d8檢視
配置mysql使用者並建立svnadmin庫即可
mysql> create database svnadmin;
3.解壓tomcat,刪除webapps下的檔案
tar -zxf apache-tomcat-7.0.78.tar.gz -C /opt
rm -rf /opt/apache-tomcat-7.0.78/webapps/*
4.配置svnadmin
解壓svnadmin-3.0.5.zip將svnadmin.war 移動到/opt/apache-tomcat-7.0.78/webapps/
unzip svnadmin-3.0.5.zip
mv svnadmin.war /opt/apache-tomcat-7.0.78/webapps/
啟動tomcat,讓tomcat自行解壓war包,然後編輯資料庫配置檔案的#mysql段,使其可以正常連線資料庫
/opt/apache-tomcat-7.0.78/bin/startup.sh
vim /opt/apache-tomcat-7.0.78/webapps/svnadmin/WEB-INF/jdbc.properties
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=root
匯入svnadmin專案mysql資料庫和語言包
mysql -uroot -p svnadmin < db/mysql5.sql
mysql -uroot -p svnadmin < db/lang/en.sql
再重啟tomcat
/opt/apache-tomcat-7.0.78/bin/shutdown.sh
/opt/apache-tomcat-7.0.78/bin/startup.sh
此時svnadmin已經配置啟動完畢
防火牆開通8080埠
[root@localhost opt]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3690
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
5.進入svnadmin的web介面進行配置
瀏覽器輸入地址訪問tomcat,提示第一次使用請設定管理員帳號和密碼,這裡設定一個admin
http://IP:8080/svnadmin/
配置svnadmin和subversion的整合,在web管理介面輸入下列資訊,並提交
提交完畢後專案已經整合
現在可以對svn增加使用者,以及配置使用者許可權
首先設定使用者組,將之前第一次設定的svnadmin管理員賬號加入manage使用者組內
現在對此專案有第一個管理員使用者了,現在需要建立其他使用者
給a使用者配置許可權
給a使用者配置可讀許可權
6.配置完使用者許可權過後,通過tortoisesvn的windows客戶訪問svn服務
tortoisesvn 客戶端下載地址:https://tortoisesvn.net/downloads.html
windows下直接雙擊執行msi檔案進行tortoisesvn的安裝
安裝完成後在桌面上空白處右鍵進入版本庫瀏覽"Repo-browser"
輸入SVN地址
輸入管理員使用者名稱和密碼
進入後建立資料夾
7.subversion的備份
第一種:指定版本備份,以及恢復方式(subversion庫版本號可以通過windows客戶端tortoisesvn的"版本庫瀏覽"進行檢視)
svnadmin dump /opt/subversion/svn/test/ --revision 1010 > 20171111.svn
svnadmin load /opt/subversion/svn/test/ < 20171111.svn
第二種:全備份,以及恢復方式
svnadmin dump /opt/subversion/svn/test/ > 20172222.svn
svnadmin load /opt/subversion/svn/test/ < 20172222.svn
第三種:備份並壓縮,以及恢復方式
svnadmin dump /opt/subversion/svn/test/ | gzip /opt/backup/subversion/20171212.svn.zip
zcat 20171212.svn.zip | svnadmin load /opt/subversion/svn/test/
可以將備份命令寫成shell指令碼
vim /opt/backup/subversion/svndump.sh
#!/bin/bash
DBNAME=`date "+%Y.%m.%d_%H%M%S_test_subversion"`.svn
/usr/local/subversion/bin/svnadmin dump /opt/subversion/svn/test/ > /opt/backup/subversion/$DBNAME
給指令碼新增執行權
chmod +x /opt/backup/subversion/svndump.sh
寫crontab計劃任務讓其自動備份
crontab -e
#每週六的3:30執行指令碼svndump.sh
30 3 * * 6 /opt/backup/subversion/svndump.sh
更多用法請參照svn官方文件
相關文章
- CentOS 7.9中部署SVN(Subversion)服務CentOS
- CentOS 安裝 SubversionCentOS
- SVNAdmin2 - 基於web的SVN管理系統Web
- CentOS 下 Apache + Subversion 實現版本控制CentOSApache
- Docker集中化web介面管理平臺 - Shipyard部署記錄DockerWeb
- CentOS 7 Docker安裝部署Go WebCentOSDockerGoWeb
- CentOS5.5整合cacti+monitor+told+ntop部署CentOS
- 6. 整合學習&隨機森林隨機森林
- CentOS7 Apache+Mono Web站點部署CentOSApacheMonoWeb
- Windows下Subversion配置管理員指南Windows
- RAP web 介面管理工具Web
- RHEL 環境下 Subversion 伺服器部署與配置伺服器
- CentOS學習筆記 – 6. docker安裝CentOS筆記Docker
- svnadmin dump備份工具
- openwrt luci管理的Web介面例項Web
- YApi視覺化介面管理平臺部署API視覺化
- 【伺服器】CentOS下部署執行NodeJs Web App伺服器CentOSNodeJSWebAPP
- 6.管理控制檔案(筆記)筆記
- 使用 Subversion、Hudson 和 Eclipse 構建持續整合系統Eclipse
- 介面文件管理工具-DOClever部署實踐
- 版本管理三國志 (CVS, Subversion, git)Git
- 私有化輕量級持續整合部署方案--03-部署web服務(下)Web
- 私有化輕量級持續整合部署方案--03-部署web服務(上)Web
- Portainer:Docker容器的Web介面管理工具AIDockerWeb
- CentOS部署pyspiderCentOSIDE
- centos 部署jar包CentOSJAR
- linux 上部署 YApi 視覺化介面管理平臺LinuxAPI視覺化
- subversion快速入門
- docker registry(私庫)搭建,使用,WEB視覺化管理部署DockerWeb視覺化
- CentOS 部署 flask專案CentOSFlask
- CentOS7.4 部署 DockerCentOSDocker
- Django在centos上部署DjangoCentOS
- web伺服器管理系統 彈性 web 託管例項上部署 DedeCMSWeb伺服器
- JdonFramework web框架整合FrameworkWeb框架
- 利用subversion,usvn,rsync,cwrsyn,管理WindowsServerIIS站點檔案的更新(2)WindowsServer
- Spring Boot整合Google Bard - Web介面訪問Google AI聊天機器人Spring BootGoWebAI機器人
- python web 部署PythonWeb
- CentOS部署Harbor映象倉庫CentOS