Linux Shell 实现一键部署subversion

2023-05-16

subversion

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

TortoiseSVN 

TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

Subversion目录说明 

  • /var/svn/project/
目录说明
db存放所有的版本控制数据文件。
hooks放置hook脚本文件。
locks用来追踪存取文件库的客户端。
format一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
confSVN版本库的配置文件(版本库的访问账号、权限等)。
/etc/sysconfig/svnserve

OPTIONS="-r /Data/Svn"   指定svn根目录,如果不是此命令更改,是默认不需要更改

创建一键自动化部署subversion

  • /var/svn #存储库根目录
  • /var/svn/project #创建版本库
  • /var/svn/project/trunk #创建和使用一个仓库,最终的软件上传的目录
  • /var/svn/project/conf/svnserve.conf #SVN业务配置
  • /var/svn/project/conf/passwd #设置存储库的用户名和密码
  • 用户名密码,只允许test01,test02用户访问project全局目录下所有文件的增删改查权限,登录,test03只读project下的trunk目录文件,不允许创建删除操作
test01/test@123
test02/test@123
test03/test@123
  •  /var/svn/project/conf/authz   #设置组和用户,允许开发者组在SVN文档-root上读写,允许读取fedora用户的[trunk]文件夹
  • /etc/httpd/conf.d/subversion.conf # 设置访问权限
  • /var/svn/.svnpasswd  #配置HTTP登录用户
vim /Install_svn.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/09

svn_check=/usr/share/doc/subversion

install_svn (){
if [ ! -d ${svn_check} ];then
echo "install svn"
if [ $? -eq 0 ];then 
  yum install -y httpd mod_dav_svn subversion
  config_svn
   echo -e "\033[32mThe svn Install Sussess...\033[0m" 
  else
   echo -e "\033[33mThe svn Install Failed...\033[0m" 
    exit 1
   fi
  else
   echo -e "\033[31mThe svn Install already...\033[0m"
fi
}

config_svn (){

#Create the repository root
mkdir -p /var/svn

#Starting the svn
systemctl enable --now svnserve

#Command to create a version library
mkdir -p /var/svn/project
svnadmin create /var/svn/project

#Create a repository
svn mkdir file:///var/svn/project/trunk -m "create"

#Delete the default configurations of the svn
rm -rf /var/svn/project/conf/svnserve.conf
rm -rf /var/svn/project/conf/passwd
rm -rf /var/svn/project/conf/authz

#Modify the SVN service configuration
cat >>/var/svn/project/conf/svnserve.conf<<EOF
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
EOF

#Set the username and password for the repository
cat >>/var/svn/project/conf/passwd<<EOF
[users]
test01 = test@123
test02 = test@123
test03 = test@123
EOF

#Set groups and users,
#allow read/write on SVN document-root for developer group,
#allow read on [trunk] folder for fedora user
cat >>/var/svn/project/conf/authz<<EOF
[groups]
developer = test01,test02

[/]
@developer = rw

[/trunk]
test03 = r
EOF

#set access permission
cat >>/etc/httpd/conf.d/subversion.conf<<EOF
# create new
<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/project
</Location> 
EOF

#config http login user
htpasswd -cb /var/svn/.svnpasswd test01 test@123
chown -R apache. /var/svn/project
systemctl restart httpd
systemctl enable --now httpd

#Firewall port configuration
firewall-cmd --add-service=svn --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

echo "svn version check"
svnserve --version | grep ", version" | awk '{print $3}'
}

main (){
install_svn
}

main

执行一键安装

sh /Install_svn.sh

Windows 客户连接svn

  • TortoiseSVN download
  • TortoiseSVN zh-cn语言包
  • Windows 下Powershell 一键部署TortoiseSVN参考
  • svn://192.168.12.241/project
  • 用户名密码,只允许test01,test02用户访问project全局目录下所有文件的增删改查权限,登录,test03只读project下的trunk目录文件,不允许创建删除操作

 连接到库

上传容易文件到trunk 目录 

提交上传文件到svn 服务器

选择需要上传到svn服务器的文件

文件上传完成

http访问svn

  • 192.168.12.241/project/
  • test01/test@123

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux Shell 实现一键部署subversion 的相关文章

随机推荐

  • Linux Shell 实现一键部署Msql8

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署Msql5

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署tomcat10+java13

    tomcat 前言 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 xff0c 属于轻量级应用服务器 xff0c 在中小型系统和并发访问用户不是很多的场合下被普遍使用 xff0c 是开发和调试JSP 程序的首选 对于一个初学
  • Linux Shell 实现一键部署SQL_Server2022

    sql Server 前言 Microsoft SQL Server 是一个全面的数据库平台 xff0c 使用集成的商业智能 BI 工具提供了企业级的数据管理 Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供
  • Linux Shell 实现一键部署Redis6

    redis 前言 Redis xff08 Remote Dictionary Server xff0c 即远程字典服务 xff0c 是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value数据库 xf
  • Linux Shell 实现一键部署Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • [linux]mount与nfs挂载简介

    文章目录 挂载mount目录间挂载卸载与fuserfstabNFS Server配置命令 NFS client mount用于挂载设备 xff1a 挂载分区 xff1a mount dev sdb1 data xff1b 文件夹间 xff1
  • Linux Shell 实现一键部署Nginx

    nginx前言 nginx engine x 是 HTTP 和反向代理服务器 邮件代理服务器和通用 TCP UDP 代理服务器 xff0c 最初由Igor Sysoev编写 很长一段时间以来 xff0c 它一直在许多负载重的俄罗斯网站上运行
  • Linux Shell 实现一键部署二进制Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • Linux Shell 实现一键部署二进制docker+docker_compose

    docker 前言 Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全
  • PowerShell install Docker+docker-compoer

    docker 前言 Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全
  • PoweShell Win_server install wsl

    什么是 WSL 2 WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本 xff0c 它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件 它的主要目
  • PoweShell Win_desktop install wsl

    什么是 WSL 2 WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本 xff0c 它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件 它的主要目
  • Linux Shell 实现一键部署二进制go+caddy+filebrowser

    filebrowser filebrowser 是一个使用go语言编写的软件 xff0c 功能是可以通过浏览器对服务器上的文件进行管理 可以是修改文件 xff0c 或者是添加删除文件 xff0c 甚至可以分享文件 xff0c 是一个很棒的文
  • PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统

    filebrowser filebrowser 是一个使用go语言编写的软件 xff0c 功能是可以通过浏览器对服务器上的文件进行管理 可以是修改文件 xff0c 或者是添加删除文件 xff0c 甚至可以分享文件 xff0c 是一个很棒的文
  • Linux Shell 实现一键部署http+用户名密码登录

    Apache 前言 Apache 音译为阿帕奇 是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 xff0c 由于其跨平台和安全性被广泛使用 xff0c 是最流行的Web服务器端软件之一 它快速 可靠并且可通
  • PowerShell install 一键部署http+用户名密码登录实现文件系统

    Apache 前言 Apache 音译为阿帕奇 是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 xff0c 由于其跨平台和安全性被广泛使用 xff0c 是最流行的Web服务器端软件之一 它快速 可靠并且可通
  • [python]异常处理与try语句

    文章目录 异常处理try语句异常信息抛出异常 异常类型自定义异常预定义异常 使用 try except else 来捕获异常 xff0c 且要求异常必须继承自Exception类 异常处理 运行期检测到错误称为异常 try语句 python
  • 大杂烩·OSI和TCP/IP协议与ZigBee技术·一

    1 ZigBee技术 ZigBee是基于IEEE802 15 4标准的低功耗局域网协议 根据国际标准规定 xff0c ZigBee技术是一种短距离 低功耗的无线通信技术 这一名称 xff08 又称紫蜂协议 xff09 来源于蜜蜂的八字舞 x
  • Linux Shell 实现一键部署subversion

    subversion SVN是subversion的缩写 xff0c 是一个开放源代码的版本控制系统 xff0c 通过采用分支管理系统的高效管理 xff0c 简而言之就是用于多个人共同开发同一个项目 xff0c 实现共享资源 xff0c 实