15分钟运维系列之SVN安装/管理/备份

欢迎访问 陈同学博客原文

最近因为要重新安装一些开发工具,因此纪录下,整理成一个运维系列。

在Docker没有普及之前,服务器上安装工具十分繁琐。有了Docker之后,各种管理工具都是15分钟搞定安装配置。

如果你是初创公司的技术负责人,这些杂活技能也许对你有用。

本文介绍如何基于Docker安装管理SVN,15分钟搞定一切。

环境&安装介质

  • OS:Ubuntu 16.04.1 LTS
  • Docker:Docker version 1.13.1
  • SVN:Subversion Edge
  • 机器IP:127.0.0.1 (此IP仅做示例,你需要使用自己的实际IP或域名)

安装

参考 Dockerhub subversion-edge

直接使用Dockerhub的mamohr/subversion-edge镜像

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

参数介绍:

  • 3343:HTTP CSVN Admin Sites
  • 4434: HTTPS CSVN Admin Sites (If SSL is enabled)
  • 18080:Apache Http SVN
  • /u01/svn/data:数据存储目录

配置

登录

访问SVN控制台: http://127.0.0.1:3343 ,初始账户: admin/admin

配置主机名

将主机名配置成你的实际IP或域名

管理

创建Repository

创建你的SVN库,名字随意,别用中文就行。一般库选择 Empty repository即可

创建后在版本库列表可以看到刚创建的repo.

此时,在浏览器上访问 http://svn.utopiavip.org:18080/svn/utopia 就可以访问这个SVN库了。

当然,windows上用小乌龟、Mac上用Cornerstone此时也是可以使用了。

用户管理

创建用户例子

配置访问规则

作为SVN管理员,一方面是用户管理,另一方面是repo的权限管理要做好。

下面是一个简单的访问规则例子,假设我们有用户admin,user1,user2,user3。

[groups]
Gadmin = admin
Gutopia = user1,user2
Gdeveloper = user2
[/]
@Gadmin = rw
[utopia:/]
@Gutopia = rw
[utopia:/技术管理]
@Gdeveloper = rw
user3 = r

规则介绍

  • groups:用户组,以@开头,将若干用户分为一个组,统一控制该组用户的权限。为了和用户区分,用户组我统一使用 G 开头
  • Gadmin组对所有库有读写权限
[/] 
@Gadmin = rw
  • Gutopia组成员对utopia 库所有可读写
[utopia:/]
@Gutopia = rw
  • 开发人员对utopia库下的技术管理 目录可读写,user3仅对该目录可读写,所有用户对该库可读
[utopia:/技术管理]
@Gdeveloper = rw 
user3 = rw
* = r

备份

备份

SVN作为资料库,需要做好数据备份。

如果数据量不大,直接全量备份就好,天数保留7天足够。在New Jobs Tab页勾选需要备份的repo,直接创建Job即可。如果条件允许,最好定期备份磁盘数据,否则万一磁盘出现意外,就GG了(不过基本不太可能)。

至此,SVN的安装、配置、管理、备份全部搞定,15分钟差不多。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

缓存,你真的用对了么?

缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。

1452
来自专栏butterfly100

权限控制的解决方式(科普向)

目录 1 权限控制是什么   1.1 ACL   1.2 RBAC     1.2.1 名词术语     1.2.2 RBAC定义     1.2.3 RBAC...

75011
来自专栏写代码的海盗

Coreos 安装及配置

Coreos 安装及配置 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 目前国内...

4097
来自专栏吉浦迅科技

【用户经验分享】NVIDIA Jetson TX2开发板运行 jetson-inference 出现问题的终极解决办法

注 之前本公众号发布了一个教程【入门篇】Jetson TX2深度学习Inference初体验,里面提到一个步骤,就是可能会出现错误,提示nvidia.app.b...

8625
来自专栏IT技术精选文摘

使用Lagom和Java构建反应式微服务系统

介绍 Lagom是一个帮助您构建反应式微服务的框架。 大多数微服务框架着重于帮助您构建脆弱的单实例微服务,根据定义,这些微服务不具可扩展性或不具有弹性。 L...

2495
来自专栏应用案例

性能测试之gatling详解

大家接触过形形色色的压力测试工具,例如lr,jmeter各有各的优点,那么最近在做接口测试中涉及到压力测试,小弟就看到一个好用的工具俗称“加特林”英文Gatli...

2926
来自专栏程序员的知识天地

众多Python Web框架比较,哪个适合你,你就用哪个!

Python程序员有很多很好的选择来创建Web应用程序和API;Django,Weppy,Bottle和Flask引领潮流。

782
来自专栏mySoul

Linux基础知识

软件运行时输入单元输入内容,进入内存,CPU由控制单元和算术逻辑单元组成,控制单元控制算术逻辑单元从内存中读取数据,内存和外部存储设备进行交互,运算完毕以后输出...

1244
来自专栏chenssy

好 RESTful API 的设计原则

做出一个好的API设计很难。API表达的是你的数据和你的数据使用者之间的契约。打破这个契约将会招致很多愤怒的邮件,和一大堆伤心的用户-因为他们手机上的App不工...

962
来自专栏游戏杂谈

liunx下查看服务器硬件信息

今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cp...

1812

扫码关注云+社区