linux与 windows环境的Subversion版本控制企业架构搭建之svn+ssh

简介:

1、前言

1.1、需求和目的

公司要求引入版本管理服务器对两大对象进行管理:

1)针对windows环境的开发人员的源代码做版本控制。

2)针对linux服务器的配置文件做版本控制。

本章将使用svn+ssh协议的方式完成文件的版本控制。

1.2、系统架构模式描述

1)linux的服务器端

服务器端通过ssh协议提供版本控制服务(port:tcp22)

2)linux&windows的客户端

linux以配置文件版本控制客户端的角色出现

windows以开发者版本控制客户端的角色出现

2、理论部分

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

3、实践部分

3.1、主机信息

svnSer:

ipaddress=10.168.0.176

hostname=svnSer


linux client:

ipaddress=10.168.0.8

hsotname=client


windows Client:

ipaddress=10.168.0.x

hostname=will2


3.2、yum包的安装

In svnSer & Linux Client

1
yum -y  install  subversion

其他包安装:

1
yum -y  install  tree

3.3、linux服务端、客户端的配置

3.3.1、step1

In svnSer:

定义仓库文件夹:

1
2
3
svnadmin create  /var/local/svn
ls  /var/local/svn
tree  /var/local/svn

注意"revprops"节点(版本控制内容)

3.3.2、step2

In svnSer:

定义权限控制

1
2
3
4
5
6
7
ll  /var/local/svn
groupadd -g 5000 svngroup
chgrp  -R svngroup  /var/local/svn
ll  /var/local/svn/db/
chmod  g+w -R  /var/local/svn/db/
chmod  o= -R  /var/local/svn/db/
ll  /var/local/svn/db/

定义只有svngroup组对“/var/local/svn/db/”有写的权限,其他用户没有任何权限

3.3.3、step3

In svnSer:

定义svn用户

1
2
3
4
5
6
7
8
9
10
useradd  stan
echo  willp |  passwd  --stdin will
useradd  natasha
echo  natashap |  passwd  --stdin natasha
usermod  -G svngroup will
usermod  -G svngroup natasha
#usermod -aG svngroup will
#usermod -aG svngroup natasha
id  will
id  natasha

3.3.4、step4

In svnSer:

检查文件目录权限

1
ll -d  /var/local/svn

确认组只有读权限

1
ll -d  /var/local/svn/db

确认组有读写权限

1
ll  /var/local/svn/db/

确认文件有读写权限

3.3.5、step5

In svnSer:

上传文件测试

1)配置需要的环境变量:

1
2
su  - will
vim ~/.bashrc

输入如下内容:

1
export  EDITOR= vi

2)创建测试源:

1
2
3
4
cp  -r  /etc/  /home/will/
tree  /home/will/etc
cd  /home/will/
svn  import  etc/  file : ///var/local/svn/etc

输入:

1
2
3
4
i
import  svn etc v1
#ESC键
:wq

3.3.6、step6

In svnSer:

下载测试

1
2
3
rm  -rf etc/
svn checkout  file : ///var/local/svn/etc
tree etc/

3.3.7、step7

In Client:

建立测试用户并配置环境变量

1
2
3
4
useradd  will
useradd  natasha
echo  willpw |  passwd  --stdin will
echo  natashapw |  passwd  --stdin natasha

配置需要的环境变量:

1
2
su  - will
vim ~/.bashrc

输入如下内容:

1
2
3
export  EDITOR= vi
cd  /home/will/
svn checkout svn+ ssh : //10 .168.0.176 /var/local/svn/etc

输入svnSer服务器端will的用户密码(注意不是本机的will用户密码)

3.3.8、step1

In Client:

检查下载的文件

1
tree  /home/will/etc

3.3.9、step9

In Client:

设置自动认证

1)ssh-keygen生成一对秘钥

1
ssh -keygen

以上一直回车就好

2)把公钥复制给svnSer

1
ssh-copy-id -i ~/.ssh/id_rsa.pub will@ 10.168 . 0.176

输入svnSer服务器端stan的用户密码(注意不是本机的stan用户密码)

3)测试自动认证

1
2
3
4
cd  /home/will/
rm  -rf etc
ls
svn checkout svn+ ssh : //10 .168.0.176 /var/local/svn/etc

3.3.10、step10

In svnSer

版本信息更新测试

1)新svn文件

vim编辑/home/will/etc/sysconfig/network

更改前:

1
HOSTNAME=svn.cmdschool.org

更改后:

1
HOSTNAME=svn001.cmdschool.org

更改以上参数

2)上传svn文件

1
2
cd  /home/will/etc
svn commit

输入:

1
2
3
4
i
modify network
#ESC键
:wq

3.3.11、step11

In Client

客户端下载svn文件

1)先检查客户端配置文件

1
cat  /home/will/etc/sysconfig/network

2)更新svn文件

1
2
cd  /home/will/etc
svn update

3)检查svn更新结果

1
cat  /home/will/etc/sysconfig/network

3.3.12、step12

In Client

客户端下载某个版本的svn文件

1)清理当前的svn文件

1
2
cd  ..
rm  -rf etc

2)检出选定的版本svn文件

1
svn checkout -r 1 svn+ ssh : //10 .168.0.176 /var/local/svn/etc

以上检出版本1的文件

3.3.13、step13

In Client

客户端svn文件更新

增加一个新文件

1
echo  "test"  /home/will/etc/test .txt

3)上传新文件

1
2
3
svn add  /home/will/etc/test .txt
cd  /home/will/etc/
svn commit

输入:

1
2
3
4
i
Client add  file  to svnSer
#ESC键
:wq

3.3.14、step14

In svnSer

svn文件删除

1)svn文件的删除

1
2
svn del  /home/will/etc/test .txt
svn commit

输入:

1
2
3
4
i
del  test .txt  file
#ESC键
:wq

In Client

2)客户端检出删除的结果

1
2
svn update
ls  /home/will/etc/test .txt

3.3.15、step16

In svnSer

svn文件重命名

1)重命名

1
2
3
cd  /home/will/etc/sysconfig/
svn  mv  network network.save
svn commit

输入:

1
2
3
4
i
mv  filename
#ESC键
:wq

In Client

2)客户端检出重命名的结果

1
2
svn update
ls  /home/will/etc/sysconfig/network .save

3)svn版本回滚

1
2
svn update -r 3
svn commit

以上回滚到第3版本

3.3.16、step16

简化日志输入

1
2
svn update -r 4
svn commit -m  "r to v4"

3.3.17、step17

svn日志查看

1
svn log

3.4、windows客户端的配置

3.4.1、step1

In window Client:

设置公钥认证:

1)下载putty

http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

解压到D盘根目录:

wKiom1Y8m42SU646AAIP9ga_i68806.jpg

2)生成公钥和私钥

wKiom1Y8nDbSy7AKAAFGwWFCcEA942.jpg

注:以上需要在界面上移动鼠标(笔者超级奇怪,刚才是没有看清楚!)

3)保存公钥和私钥到“d:\putty”

wKioL1Y8n0nD6B-fAAJ1lqBbFWw379.jpg

保存结果如下:

wKioL1Y8n4fxWF4CAAKE6_JABM4920.jpg

3.4.2、step2

测试公钥认证:

In window Client:

1)把公钥复制到服务器端:

wKiom1Y80WvxvrqjAAC2yMFCJIc533.jpg


2)设置认证的公钥:

IN svnSer:

执行如下命令将公钥加入到认证文件:

1
cat  /home/will/pubkey  >>  /home/will/ . ssh /authorized_keys

vim编辑/home/will/.ssh/authorized_keys

编辑前:

wKiom1Y81PrCwZG1AANIrWLzmpk907.jpg

以上光标处开始共9行,保留第3-8行,其余删除,并将3-8行合并为一行。

编辑后:

wKioL1Y81T2AYp3AAAM_FoXxqYk802.jpg

以上加入头部“ssh-rsa”与尾部客户“用户名@主机名”即“will@will2.comschool.org”

注:以上加入公钥方法本人觉得麻烦,windows到linux有更好的方法请告知我!

3)添加认证所需的私钥

In windows Client:

wKioL1Y80vqRLjD2AAHzj8ycuAI751.jpg

4)设置测试信息

In windows Client:

wKiom1Y80objZ1rHAAIMpFgDxvU256.jpg

见到如下信息表示公钥认证成功:

wKiom1Y81oWQf9k-AACc4NSRgqs976.jpg

3.4.3、step3

In windows Client:

下载并安装svn

1)下载并安装

下载地址:

http://tortoisesvn.net/downloads.html

由于windowsn的安装都是无师自通,本教程省略,安装完成图例如下:

wKiom1Y8nPbh4rZ1AAF3kGwkfWo187.jpg

文件夹邮件菜单图例:

wKiom1Y8nZHhoHNiAAECEKxVEjI887.jpg

以上两张图证明svn安装成功

3.4.4、step4

设置svn认证:

右键单击要检出到的文件夹->TortoiseSVN -> Settings -> Network

1)样例一

公钥认证

并添加如下公钥认证样例:

1
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"  -l will -i D:\putty\privatekey.ppk

详细如下:

wKioL1Y83uSSRKkoAAL4PmMZUjs919.jpg

常用参数:

-pw 输入登录svn服务器的密码

-l  输入登录svn服务器的用户名

-i  输入认证的私钥

2)样例二

公钥认证显式用户名和密码自动登录样例(不安全):

"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -pw password -l username

3)样例三

手动键入密码的样例(太麻烦):

1
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"  -l username

3.4.5、step5

检出记录

wKioL1ZEk3CAjGTzAADWBeExRdw069.png

如上图所示:

文件夹单击[SVN Checout]

wKioL1ZEk2yzszD1AABHYkUwk8M804.png

填入检出路径:"svn+ssh://will@10.168.0.176/var/local/svn/etc"

以上内容意义:

协议:svn+ssh://

用户名:will

路径:10.168.0.176/var/local/svn/etc

wKiom1ZEkyOinvg-AACNlI7g2Yc562.png

如上图所示:

文件检出中……









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1710315,如需转载请自行联系原作者

目录
相关文章
|
26天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
12天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
16 0
|
6天前
|
监控 安全 Linux
【专栏】害怕 Linux SSH 不安全?这几个小妙招安排上!
【4月更文挑战第28天】在数字化时代,Linux SSH 的安全对于远程管理至关重要。增强 SSH 安全包括:使用强密码,调整 SSH 配置文件,尤其是端口号和认证方式;采用密钥认证代替密码;限制登录用户,禁止密码登录;使用防火墙限制访问;定期更新系统和软件。此外,通过日志监控、入侵检测系统及及时应对攻击来提升安全监控。保持对安全知识的学习和更新,结合最佳实践,是保障 SSH 安全的关键。记得安全是个持续过程,时刻保持警惕!
|
3天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第1天】 随着数字化转型的深入,云原生技术以其灵活性、可扩展性和敏捷性成为现代企业IT架构的核心。本文将探讨云原生架构的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps实践,并分析它们如何共同塑造企业的运营模式。同时,文章还将讨论在采纳云原生过程中企业可能遇到的挑战,如安全性问题、技术复杂性以及组织文化的转变,并提出应对策略。
19 8
|
5天前
|
Cloud Native Devops 持续交付
构建未来应用:云原生架构在现代企业中的实践与挑战
【4月更文挑战第29天】 随着数字化转型的加速,企业正迅速转向云计算以支撑其业务敏捷性和创新。云原生技术,作为推动这一转型的关键因素,正在重新定义软件开发和运维模式。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps文化,并分析这些技术如何帮助企业实现弹性、可扩展和高效的应用部署。同时,我们将讨论在采纳云原生实践中所面临的挑战,包括安全性、治理和人才缺口等问题。
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第29天】 随着数字化转型的不断深入,企业的IT架构正经历着根本性的变革。云原生技术以其独特的弹性、可扩展性和敏捷性成为这一转型的关键驱动力。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps实践,并分析这些技术如何帮助企业实现快速迭代和高效运营。同时,我们也将识别在采纳云原生技术过程中可能遇到的挑战,并提出相应的解决策略。通过实际案例分析,本文旨在为决策者提供实施云原生架构的洞见,以加速其业务创新和市场响应速度。
|
5天前
|
Cloud Native 安全 Devops
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第29天】 随着数字化转型的不断深入,云原生架构已成为支撑企业敏捷性、可扩展性和创新能力的关键。本文将深入探讨云原生技术的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析其在不断变化的商业环境中实现快速迭代和资源优化的能力。同时,文章还将讨论企业在采纳云原生架构时面临的挑战,如技术选型、团队技能培养、安全性考虑及成本管理,并提出相应的解决策略。
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第29天】 随着数字化转型的加速,云原生技术正成为推动企业IT架构现代化的关键力量。本文深入探讨了云原生架构的核心组件、实施策略以及面临的主要挑战。通过分析容器化、微服务、DevOps和持续集成/持续部署(CI/CD)等关键技术,揭示了云原生架构如何助力企业提高敏捷性、优化资源利用和加强安全性。文中还将提供针对企业在采用云原生实践中遇到的难题,如服务治理、复杂性和技能缺口等,提出切实可行的解决方案。
|
5天前
|
Kubernetes Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与实践
【4月更文挑战第29天】 随着数字化转型的浪潮席卷各行各业,企业对于信息技术基础设施的要求日益提高。传统的IT架构已难以满足快速迭代、灵活扩展和持续创新的需求。本文聚焦于云原生架构,一种为云计算环境量身打造的设计理念和技术集合,旨在帮助企业构建更加灵活、可靠和高效的系统。通过对云原生核心组件的解析、实施策略的探讨以及成功案例的分析,我们揭示了云原生架构如何助力企业在竞争激烈的市场中保持领先地位。
|
5天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在现代企业中的应用和影响
【4月更文挑战第29天】随着科技的日新月异,云计算已经成为推动企业数字化转型的关键力量。特别是云原生架构,以其独特的设计理念和技术实践,为企业提供了灵活、高效、可扩展的解决方案。本文将深入探讨云原生架构的核心概念,分析其在现代企业中的实际应用,以及其对企业运营和战略的深远影响。