当前位置: 澳门新濠3559 > 服务器运维 > 正文

下面教大家在unbuntu中一步一步地去配置svn服务器

时间:2019-10-01 06:46来源:服务器运维
在本文中,我将建立两个示例项目。一个项目名为“website”,另一个项目名为“database”,因为在大公司中,系统管理员和数据库管理员常常是分开设立的。这两个项目都将使用可以由

在本文中,我将建立两个示例项目。一个项目名为“website”,另一个项目名为“database”,因为在大公司中,系统管理员和数据库管理员常常是分开设立的。这两个项目都将使用可以由中央操作团队来管理的“常见任务”(common tasks)。

svn01# cd /var/lib/svn

(R)?ex 使用 SSH 作为默认的传输层,无需在服务器端安装任何软件,只需要一个可使用 ssh 的帐号。

1

•Web服务器,web01

在本文中,我将使用Subversion来管理所有任务。你也可以使用其他任何软件配置管理(SCM)系统,只要它支持类似Subversion的外部命令的命令。我使用Ubuntu 12.04,但你也可以使用其他发行版。

不要忘记每一个安装的步骤,创建为自动化. 因为自动化可以减少失败的风险,让你真正的轻松工作.

在ubunto中安装

我将使用多个服务器:

我不会在每一个命令后面加上后缀“sudo”;必要的话,请使用“sudo”。

user "root";
group "frontend" => "frontend[01..05]";

当您执行了该命令,SVN 就开始监听默认的端口(3690)。

你可以从网站

svn01# mkdir /var/lib/svn

desc "Get Disk Free";
task "disk_free", sub {
  my $output = run "df -h";
  say $output;
};
现在你可以用这个命令运行你的任务

使用其自身的协议访问(svn://)

Rex是一款服务器协调和配置管理工具。有了Rex,你可以通过配置管理和软件部署的完整流程,由集中点来管理所有服务器。

•Subversion服务器,svn01

Rex 纯由 Perl 所打造,不必担心的是,你只需了解一点 Perl 便可快速上手。Rex 除了能够从命令行执行操作外,还支持将相关任务放入 Rexfile 文件。

我们在服务器的某个目录下把代码checkout下来,然后在代码提交的时候自动触发该项目的update命令。

前言

AuthName "Subversion Repository"

认识了 (R)?ex 这个好工具。Rex 允许你通过 SSH 在远端服务器执行命令,不仅可用于快速部署各种服务,而且能够进行配置管理。Rex 的自动化处理的确给人一种方便省时的感觉。

sudo usermod -G subversion -a username

简而言之,Rex就好比Make命令。有一个集中式Rexfile,你可以在其中定义任务。这些任务通过SSH在远程机器上执行。任务采用普通perl编写而成。

前言

desc "Prepare Frontend Server";
task "prepare", group => "frontend", sub {
  install "apache2";
};

 

在本文中,我将使用Subversion来管理所有任务。你也可以使用其他任何软件配置管理(SCM)系统,只要它支持类似Subversion的外部命令的命令。我使用Ubuntu 12.04,但你也可以使用其他发行版。

DAV svn

Rex 据有的优势

需求:

•Subversion服务器,svn01

•数据库服务器,db01

我们相信开源coder 的想法.所以Rex 全部代码都是给予Apache 2.0 的许可协议开源

现在执行下面的命令

我不会在每一个命令后面加上后缀“sudo”;必要的话,请使用“sudo”。

svn01 /var/lib/svn# svnadmin create database

入门快,十分钟 Perl 基础就够

9

•工作站,wks01

•工作站,wks01

为什么使用 Rex?

 

简而言之,Re...

现在,创建目录/var/lib/svn和所有所需的版本库。我会在后面描述版本库的内容。

  file "/etc/apache2/apache2.conf",
        source    => "files/etc/apache2/apache2.conf",
        on_change => sub { service apache2 => "reload"; };
};
在 sudo 下执行 ?
你也可以在sudo 下 运行任何的任务. 只需要激活sudo 和定义sudo 的密码

#注意这里设置成自己想要更新的目录,已经用户名和密码

•数据库服务器,db01

svn01# htpasswd -c /etc/apache2/dav_svn.passwd your-user-name

你可以加入我们社区让Rex 更加的完美.

 

Rex是一款服务器协调和配置管理工具。有了Rex,你可以通过配置管理和软件部署的完整流程,由集中点来管理所有服务器。

$ curl -L get.rexify.org | perl - --sudo -n Rex

下面对svn进行一个简单的介绍

首先,你得安装全部所需的软件包。在Subversion服务器上执行这个命令。

澳门新濠3559 1

 

svn01 /var/lib/svn# svnadmin create common

$ rex -H "frontend[01..15] middleware[01..05] db[01..04]" -e "say run 'uptime'"
还有一些,基于 Rexfile

sudo addgroup subversion

恭喜你!你的Subversion服务器现在准备就绪了。不妨直奔你的工作站,检出版本库。

user "ubuntu";
group "frontend" => "frontend[01..05]";
sudo TRUE;  #激活sudo
sudo_password 'sudopass';

 

现在,编辑文件/etc/apache2/mods-enabled/dav_svn.conf,把下列代码粘贴到该文件中(更换现有的内容)。

使用 (R)?ex 你可以从一个中心点通过完整的配置管理和软件发布流程来管理所有的机器

 

创建版本库

desc "Keep Configuration in sync";
task "configure", group => "frontend", sub {
  prepare();

接下来,我们使用最常用的的方式访问,无论是在远程的windows还是在ubunto里面都可以的。

svn01 /var/lib/svn# chown -R www-data:

澳门新濠3559 2

这样就可以自动更新了,每次本地提交的时候。 

svn01 /var/lib/svn# svnadmin create website

同时也针对 Debian、Ubuntu、Gentoo、CentOS、openSUSE、Mageia、Fedora 等发行版提供有安装包。

1

现在,可以重新启动 apache了。

Rex 可通过如下单行进行安装:

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:

在本文中,我将建立两个示例项目。一个项目名为“website”,另一个项目名为“database”,因为在大公司中,系统管理员和数据库管理员常常是分开设立的。这两个项目都将使用可以由中央操作团队来管理的“常见任务”(common tasks)。

desc "Prepare Frontend Server";
task

2

AuthUserFile /etc/apache2/dav_svn.passwd

基于 SSH,无需额外部署客户端

 

AuthType Basic

如果这个任务将执行首先安装好apahce服务在做再做配置文件同步.

      把代码放到共同的服务器中去,然后可以通过软件自由的增加和修改代码,以方便共同协作,而不是像某一些小企业那样,把代码用qq传来传去进行覆盖更新。

我将使用多个服务器:

如果你要做一个任务,运行两次以上, 请自动化它吧 !

REV="$2"

我们创建了版本库后,需要为apache建立验证机制。

$ rex -H "frontend[01..15] middleware[01..05] db[01..04]" disk_free
保持你的配置文件同步
这个例子将安装Apache webserver 在 5 个服务器上 并且保持配置文件同步.如果配置文件改变了 他会自动reload 你的apache 服务.

 

简而言之,Re...

Uptime?
这个命令行例子 将执行 "uptime" 在所有的主机上 如 (frontend01, frontend02, ...).

如果已经启动端口占用了,你可以使用ps -e查看svnserve进程的id,并把其kill掉

svn01# service apache2 restart

易用易扩展

现在,您可以在本地或者远程通过 svn://访问 SVN 了,您可以使用“svnserve”来运行 svnserver,语法如下:

你可以从网站

开放源代码

这个时候您就可以在远程使用windows的乌龟svn或者其他客服端软件进行访问了。

简而言之,Rex就好比Make命令。有一个集中式Rexfile,你可以在其中定义任务。这些任务通过SSH在远程机器上执行。任务采用普通perl编写而成。

无缝集成,没有冲突

同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。通常的情况下,您应该创建一个名为“Subversion”的用户组,该组是SVN仓库所在的目录的拥有者。下面是一个快速的操作说明

SVNParentPath /var/lib/svn

 

Require valid-user

3

•Web服务器,web01

1

svn01# apt-get install libapache2-svn subversion apache2-mpm-prefork

svn是Subversion的简称,它 是一款开放源代码的版本控制系统。使用 Subversion,您可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。

svn01 /var/lib/svn# svnadmin create service

1

 

目前已经安装并且创建了一个仓库,那么我们怎么把代码提交到这个仓库,或者把代码提交到这个仓库中去呢?

2

1

 

 

 

 

 

$ sudo mkdir myproject

当您创建了 SVN 文件仓库,您可以修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。

 

6

$ sudo chmod -R g rws myproject

1

在这里您特别需要注意一下权限的问题

# [general]

在配置svn之前你所需要掌握哪些知识

 

 

 

export LANG=en_US.UTF-8

2

 

$ sudo chown -R username:subversion myproject

#(注意行开始不要有多余空格)

1

 

ubuntu配置svn服务器并且同步更新web目录

 

$ sudo apt-get install subversion

 

1

下面的命令用于创建 SVN 文件仓库:

5

 

3

如果访问成功,那么这个时候就证明已经配置好了。

 

好了,慢慢来,我们先测试一下。

1

需求: 把代码放到共同的服务器中去,然后可以通过软件自由的增加和修改代码,以方便共同协作...

这里需要注意一下

REPOS="$1"

直接访问:

 

幸运的,Subversion 已经包含在 main 仓库中。所以,要安装 Subversion,您只需要简单的运行:

 

$ svn co file:///home/svn/myproject

1

下面教大家在unbuntu中一步一步地去配置svn服务器,至于unbunto的基本使用可以去unbunto官方看一下文档。

4

澳门新濠3559, 

#!/bin/sh

 

 

sudo svn update /wwwroot/myproject --username username--password password

username = password

$ sudo mkdir /home/svn

 

不要写错哦

 

export LANG=en_US.UTF-8

7

 

问题来了,现在代码文件可以提交和更新了,怎么去让他自动同步到服务器的某个目录呢?因为提交之后是放在svn服务器的数据库文件里面的,并没有看到任何文件。

8

许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。

linux的基本权限管理,用户管理,文件管理,进程管理。如果您对这些知识不熟悉就进行该操作你会非常痛苦

 

 

 

 

# password-db = passwd

 

 

解决办法:

1

    搭建一台公共的服务器并且配置svn服务器。svn可以很好存放代码,实现上面的需求。

 

其实这个不难解决,主要是通过svn服务器的钩子来实现的,原理如下

现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。语法如下:

 

例如,您可以取消下面的注释符号来设置授权机制:

$ sudo svnserve -d -T-r /home/svn

2

2

4

$ cd /home/svn

cd /home/svn/myproject/hooks

 

vim post-commit:

$ sudo svnadmin create /home/svn/myproject

编辑:服务器运维 本文来源:下面教大家在unbuntu中一步一步地去配置svn服务器

关键词: 澳门新濠3559