美文网首页
Linux下Subversion Edge(5.2.4)搭建与使

Linux下Subversion Edge(5.2.4)搭建与使

作者: 87d6dc4b11a7 | 来源:发表于2022-01-18 09:11 被阅读0次

CollabNet Subversion Edge是一个Subversion服务器分发版,包括Apache、Subversion和ViewVC的完整软件栈,以及一个功能强大的基于web的服务器管理控制台。

Subversion Edge的优势

直接使用Subversion,需要配置Apache以及http方式的插件,对于很多运维新手来说非常麻烦,另外如何通过浏览器更好的浏览代码,也需要自行组装ViewVC等工具。而使用Subversion Edge,则可以直接如下等诸多功能:

  • 提供整体的Web页面对用户/权限进行统一管理
  • 内嵌直接提供svn和http协议的访问方式
  • 提供ViewVC的浏览器代码查阅方式
  • 提供基本可用RestAPI可以通过API进行用户和仓库的管理
  • 提供了简单的备份和恢复方式
  • 提供了页面对于svn用户和组进行权限设定的页面

安装Subversion Edge

安装包下载:https://www.collab.net/downloads/subversion#Linux
参考:https://liumiaocn.blog.csdn.net/article/details/108174169一键安装。

#/bin/sh

error_handling() {
    if [ $? -ne 0 ]; then
      echo "  ERROR: $@"
      exit 1
    fi
}

SVN_USER=svn
SVN_GROUP=svn
SVN_HOME_DIR=/opt/svn
CSVN_HOME_DIR=${SVN_HOME_DIR}/csvn
CSVN_CONF=data/conf/csvn.conf
CSVN_WEB_PORT=3343
SUDO_ETC=/etc/sudoers
SUDO_LINE="${SVN_USER}     ALL=(ALL)       NOPASSWD: ALL"
OPENJDK_PACKAGE=java-1.8.0-openjdk
SVN_INSTALL_TAR_GZ=CollabNetSubversionEdge-5.2.4_linux-x86_64.tar.gz
TMP_LOG=/tmp/log.$$

echo "# Step 1: install openjdk"
echo "  please make sure jdk has been installed, eg: using the cmd as following"
echo "  yum update -y && yum install java-1.8.0-openjdk -y"
echo "  begin yum update ..."
echo "  maybe very slow, please check ${TMP_LOG}"
yum update -y >${TMP_LOG} 2>&1
echo "  begin install ${OPENJDK_PACKAGE}"
yum install ${OPENJDK_PACKAGE} -y >>${TMP_LOG} 2>&1
echo "  Java Version: "
java -version
echo

echo "# Step 2: add ${SVN_USER} user and group"
groupadd ${SVN_USER}
useradd -g ${SVN_GROUP} ${SVN_USER}
id ${SVN_USER}
echo

echo "# Step 3: add ${SVN_USER} sudo priveleges"
cp -p ${SUDO_ETC} ${SUDO_ETC}.org
error_handling "cp -p ${SUDO_ETC} ${SUDO_ETC}.org failed."

grep "${SUDO_LINE}" ${SUDO_ETC} >/dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "${SUDO_LINE}" >>${SUDO_ETC}
else
  echo "  Skip: the follow content existed already..."
  grep "${SUDO_LINE}" ${SUDO_ETC}
fi
diff ${SUDO_ETC} ${SUDO_ETC}.org
echo

echo "# Step 4: make dir using user ${SVN_USER} "
mkdir -p ${SVN_HOME_DIR}
chown -R ${SVN_USER}:${SVN_USER} ${SVN_HOME_DIR}
chmod o+wx ${SVN_HOME_DIR}
echo

echo "# Step 5: copy and extract install file"
if [ ! -f ${SVN_INSTALL_TAR_GZ} ]; then
  echo "  install file(${SVN_HOME_DIR}) does not exist..."
  exit 1
else
  cp ${SVN_INSTALL_TAR_GZ} ${SVN_HOME_DIR}
  error_handling "cp ${SVN_INSTALL_TAR_GZ} ${SVN_HOME_DIR} failed"
fi
cd ${SVN_HOME_DIR}
error_handling "cd ${SVN_HOME_DIR} failed"
su -l ${SVN_USER} -c "cd ${SVN_HOME_DIR} && tar xvf ${SVN_INSTALL_TAR_GZ} >/dev/null 2>&1"
error_handling "tar xvpf ${SVN_INSTALL_TAR_GZ} failed"
echo

echo "# Step 6: install csvn and csvn-httpd"
su -l ${SVN_USER} -c "cd ${CSVN_HOME_DIR} && (sudo -E bin/csvn remove >/dev/null 2>&1;sudo -E bin/csvn install)"
error_handling "csvn install failed"
su -l ${SVN_USER} -c "cd ${CSVN_HOME_DIR} && (sudo -E bin/csvn-httpd remove >/dev/null 2>&1;sudo -E bin/csvn-httpd install)"
error_handling "csvn-httpd install failed"
echo

echo "# Step 7: starting service csvn and csvn-httpd"
su -l ${SVN_USER} -c 'SU_OPTS="-s /bin/bash";sudo service csvn start'
error_handling "csvn starting failed"
su -l ${SVN_USER} -c 'SU_OPTS="-s /bin/bash";sudo service csvn-httpd start'
error_handling "csvn-httpd starting failed"
echo

echo "# Step 8: setting firewalld port"
firewall-cmd --zone=public --add-port=${CSVN_WEB_PORT}/tcp --permanent
error_handling "setting port permanent failed"
firewall-cmd --reload
error_handling "load setting failed"
echo

rm ${SVN_HOME_DIR}/${SVN_INSTALL_TAR_GZ} 
image.png

输入用户名密码:admin/admin之后即可登录。


image.png
Docker部署

参考:https://github.com/mamohr/docker-subversion-edge构建Subversion Edge(5.2.4)的镜像:

FROM mamohr/centos-java:jre8

RUN \
  yum update -y && \
  yum install -y epel-release && \
  yum install -y net-tools python-setuptools hostname inotify-tools yum-utils && \
  yum clean all && \
  easy_install supervisor

ENV FILE https://www.collab.net/sites/default/files/downloads/CollabNetSubversionEdge-5.2.4_linux-x86_64.tar.gz

RUN wget -q ${FILE} -O /tmp/csvn.tgz && \
    mkdir -p /opt/csvn && \
    tar -xzf /tmp/csvn.tgz -C /opt/csvn --strip=1 && \
    rm -rf /tmp/csvn.tgz

ENV RUN_AS_USER collabnet

RUN useradd collabnet && \
    chown -R collabnet.collabnet /opt/csvn && \
    cd /opt/csvn && \
    ./bin/csvn install && \
    mkdir -p ./data-initial && \
    cp -r ./data/* ./data-initial

EXPOSE 3343 4434 18080

ADD files /

VOLUME /opt/csvn/data

WORKDIR /opt/csvn

ENTRYPOINT ["/config/bootstrap.sh"]

容器需要暴露以下端口:
3343 - HTTP CSVN Admin Sites
4434 - HTTPS CSVN Admin Sites (If SSL is enabled)
18080 - Apache Http SVN
同时将/opt/csvn/data挂载出来。

docker run -d -p 3343:3343 -p 4434:4434 -p 18080:18080 \
    -v /srv/svn-data:/opt/csvn/data --name svn-server mamohr/subversion-edge

配置及使用

权限设置:https://liumiaocn.blog.csdn.net/article/details/108232312
备份与数据迁移:https://liumiaocn.blog.csdn.net/article/details/109363473
关于其他配置及使用可参考https://blog.csdn.net/liumiaocn/category_10323590.html?spm=1001.2014.3001.5482

相关文章

网友评论

      本文标题:Linux下Subversion Edge(5.2.4)搭建与使

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