a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 79|回复: 0

[综合辅导] linux指导:Rex管理服务器创建数据库任务

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
创建数据库任务
6 p3 d0 F! f+ N& v6 V3 Y   
5 u( N" s! e0 X) p* Y2 B    更换到数据库版本库。
3 }4 X" T2 q- v$ P% S   
2 M) n& Z9 x& v    wks01 Service# cd /database2 D" ^& x5 ^- }: C6 R- K8 U
   
; L% j  s+ @6 _) [! X! o. @    wks01 database# touch Rexfile
* H9 O3 |7 C- l   
+ j  L7 J# l( m0 U# S0 s! y; a" B: H" C    现在,我们将把2个常见版本库作为一个外部版本库来添加。
( F$ P- G2 x5 K. l   
" |5 _( h% K. e, h0 j6 Q- `    wks01 database# svn propedit svn:externals .
& ^2 F/ |+ u  P7 C) R4 l8 p    / q9 Y% c1 A" K! I+ t+ {
    添加下列几行到编辑器中,保存并关闭。# d) D/ b# e, M1 `& o
    : G7 d- _1 i% R! A
    lib/Common http://svn01/svn/common
& b2 L6 |9 t3 X( d    5 `6 J& ^: w% ~4 h" i& A* W4 c
    lib/Service http://svn01/svn/service# A( l' P$ k/ p7 n% |# x
    / {0 G6 K$ s6 t3 U8 m7 C& _! B" }
    在建好外部版本库之后,运行更新,提交新的设置。$ Y, [. g0 P, v3 Z8 S6 A
   
* ~/ S+ E: Q; j% Q* C# S. [& S7 q* d3 p    wks01 database# svn up3 [4 v  f6 m0 d3 T9 Y7 H
    " Z  @& \; ]3 S  f/ |3 D; b
    wks01 database# svn ci -m "added external repositories"
/ f8 j) k# I* R& H- L8 p   
) X' t5 i. U2 m    svn up命令现在检查两个外部版本库,检查有无更新。所以,要是有人往这其中一个版本库添加了新服务,你在执行svn up命令后获得新服务。现在,你可以开始创建Rexfile,以建立数据库服务器。
: E- D1 @5 x1 x, k4 D5 c   
: C2 _/ O+ G' L5 @  @  \" w2 H( d    set user => "root";5 N1 ?. }. G  n& Y
    & R. S; |* o- J; u7 t
    set password => "f00b4r";
( r. k; j" g/ j+ k, H   
5 o! C- W; m2 e3 {0 |    include qw/
9 U, O* `# J7 ~3 e$ s4 ?& i+ l; ~    & \4 r6 R( x; h. T; T+ b0 O. N) d
    Common::NTP# \4 Z3 `1 y( t" Z: z: _% Y
   
0 {4 k  }1 o/ Z# c! j3 P4 C0 ?3 X6 c    Service::MySQL
- ~9 ^% {8 p9 U& d# R   
6 F/ r; |# d  e% ]2 n" P8 s    /;- v5 b! Q+ U3 G
    ( \' u- I- _$ ^- `" @/ u
    set group => srvdb => "db01";* {' \1 h% q( ~1 k! i! i8 U
   
, ?# \6 G) ^& @3 N/ ~    task "prepare", group => "srvdb", sub {/ E6 a; S) C. q' l* {% m7 W
   
6 n; w' P0 Y' i1 L    # 运行常见ntp任务"prepare"
& L7 T3 ?8 k$ y& c9 O) |5 f    0 m% S& d" y( _# v. M) B9 ?
    Common::NTP::prepare();
! `0 f' H. h0 W; C: N: W6 E   
* r* v  G. n. R, T2 j- S    # 安装mysql
$ d) N8 Q+ U9 ]& n    ) X/ P, l, d, [
    Service::MySQL::prepare();, f& M/ o& V5 Y% b0 X1 |
    & ]1 B9 h  T8 S9 C2 }* c+ A
    # 配置mysql
4 W" t5 H5 V4 Y4 M8 B. u   
0 f% ]7 P( [- W- R    Service::MySQL::configure({
/ v5 A. y. _2 P   
$ v; a5 A, D8 g8 R    key_buffer => "32M",) B4 C$ m" u, o: j8 ]
   
- _( L+ m) L: {' K* |    max_allowed_packet => "32M",+ K1 S7 y% f2 m9 L8 p' {0 Q% ~
    + k  m0 Y) J+ U2 l7 x% W, p
    });  M) a: b( R- u/ y0 |
    ( X8 o: p" W  `0 F
    # 重新启动mysql
  ^3 ^* U& S7 Q0 Q8 j: A( Z   
  O/ u' |: f! \' z    service mysql => "restart";+ V! e0 P0 L* n0 |' l( l. u5 k+ ?
    ; z! a8 B$ }3 B6 v2 O
    };
8 S8 [2 |( r: a    : D' z1 }! C0 d
    首先(在第1行和第2行),我们设立了针对目标主机(db01)所用的验证机制。这里,你还可以使用密钥验证(欲知详情,请参阅http://rexify.org/howtos/start.html)。然后,我们添加了Common::NTP和Service::MySQL模块,那样我们可以从这些模块来使用服务。每个任务还登记为一个perl函数。所以,我们完全可以像调用其余任何perl函数那样来调用它们。我们添加了所需的模块后,定义了一个新的服务器组,名为"srvdb",并为其添加了主机"db01".可以为一个服务器组添加多个主机。比如:2 O. X8 i7 }$ p/ S) l/ r
   
# h, ~+ ]& Q1 N    set group => srvdb => "db01", "db02", "db03";# G- l0 S- O& K! G: t7 |
    - W! H6 L* v3 [7 P7 Y
    set group => srvdb => "db[0103]";4 ~; b- I6 I: X5 W! [6 g3 l9 @
    & ~* Q4 d- x+ ]* }
    在第2行中,我们定义了第一个任务,名为"prepare".该任务在服务器组"srvdb"中的所有服务器上执行。该任务调用Common::NTP和Service::MySQL模块的"prepare"任务。创建工作完毕后,我们在第20行配置了mysql服务器,在第26行重新启动了mysql服务。就这样。这将安装、配置和启动MySQL服务器。现在,你可以把一切重新提交到版本库。* C+ R  \9 T: b  l5 E6 F
    4 H5 |' ]1 }6 }$ }$ i3 ]" |  I
    wks01 database# svn add Rexfile
/ l/ g7 h$ u0 @( U   
, [" B5 T- N" I( I    wks01 database# svn ci -m "inital commit of Rexfile"
5 K! T, I7 k& l3 A9 u   
9 P) N1 t) ^: T$ ?    为了创建数据库服务器,你可以输入下列命令:
8 l' m  ^1 `0 C6 ~5 f$ ]$ }: W8 M1 z    , Q4 y- g+ C$ S7 F, F. D6 s4 a
    wks01 database# rex prepare
+ [# o3 l* _7 x- A   
2 y( T: V; e; Q" M) a1 a, U' {. {4 l    如果你想列出Rexfile里面的任务,可以使用下列命令。
0 M5 ?; w* K$ E- f    . l. C9 T+ ]4 k8 x) d/ B
    wks01 database# rex -T
; n$ a; u  C6 G# \$ [: T3 h    & b: z# M# c# n% ~% Q. r% }
    我们的数据库运行后,现在可以为website项目创建任务。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 15:03 , Processed in 0.148352 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表