Rex是一款服务器协调和配置管理工具。有了Rex,你可以通过配置管理和软件部署的完整流程,由集中点来管理所有服务器。
U2 W+ [/ e$ h; b! i; m
9 _+ T9 `1 S% `8 v- E" F 简而言之,Rex就好比Make命令。有一个集中式Rexfile,你可以在其中定义任务。这些任务通过SSH在远程机器上执行。任务采用普通perl编写而成。2 U6 |, w4 v- V
7 c/ l: k% ^/ @) T$ R' F/ _4 Z
前言
5 Q- U0 K6 m4 o N( K6 |) p
$ j, C# h, {/ P- v5 D3 Q$ e! L 在本文中,我将使用Subversion来管理所有任务。你也可以使用其他任何软件配置管理(SCM)系统,只要它支持类似Subversion的外部命令的命令。我使用Ubuntu 12.04,但你也可以使用其他发行版。
7 {2 f% g& H" \2 V- k7 } y$ w
4 i* b2 F- L1 x. T 我不会在每一个命令后面加上后缀"sudo";必要的话,请使用"sudo"." p$ l. x7 i" ^; e9 `8 |% M
H0 Q3 d- C8 K2 l- M& L9 ?2 j 在本文中,我将建立两个示例项目。一个项目名为"website",另一个项目名为"database",因为在大公司中,系统管理员和数据库管理员常常是分开设立的。这两个项目都将使用可以由中央操作团队来管理的"常见任务"(common tasks)。5 U- {1 z p. r* C6 t5 Q3 p
* O+ R, u( l* y$ y X: w
我将使用多个服务器:
! ?. J3 Z) x$ s $ h6 e4 e, o8 r. d4 ~% B; t* L
.Subversion服务器,svn01$ x, o( C' E0 @2 f# m4 t6 Z4 i: B
* C1 c3 O# [* u H+ E
.数据库服务器,db01
Y: u d8 A0 x & A$ A5 I' E) t" ^6 ^
.Web服务器,web01: B3 O" s% P# U- I: c/ Q
, p p0 @3 v M Z7 P) d g
.工作站,wks01 |