如何使用Rex管理你的服务器?(1)


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

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

你可以从网站http://rexify.org/获得Rex。

前言

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

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

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

我将使用多个服务器:

•Subversion服务器,svn01

•数据库服务器,db01

•Web服务器,web01

•工作站,wks01

创建版本库

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

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

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

DAV svn

SVNParentPath /var/lib/svn

AuthType Basic

AuthName "Subversion Repository"

AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

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

svn01# mkdir /var/lib/svn

svn01# cd /var/lib/svn

svn01 /var/lib/svn# svnadmin create common

svn01 /var/lib/svn# svnadmin create service

svn01 /var/lib/svn# svnadmin create database

svn01 /var/lib/svn# svnadmin create website

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

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

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

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

svn01# service apache2 restart

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

编写任务

到了工作站,现在你可以检出版本库。

wks01# svn co http://svn01/svn/common Common

wks01# svn co http://svn01/svn/service Service

wks01# svn co http://svn01/svn/database

wks01# svn co http://svn01/svn/website