使用Rex管理服务器四:创建数据库任务

日期: 2012-05-22 来源:TechTarget中国

  创建数据库任务

  更换到数据库版本库。

  wks01 Service# cd ../database

  wks01 database# touch Rexfile

  现在,我们将把2个常见版本库作为一个外部版本库来添加。

  wks01 database# svn propedit svn:externals .

  添加下列几行到编辑器中,保存并关闭。

  lib/Common http://svn01/svn/common

  lib/Service http://svn01/svn/service

  在建好外部版本库之后,运行更新,提交新的设置。

  wks01 database# svn up

  wks01 database# svn ci -m “added external repositories”

  svn up命令现在检查两个外部版本库,检查有无更新。所以,要是有人往这其中一个版本库添加了新服务,你在执行svn up命令后获得新服务。现在,你可以开始创建Rexfile,以建立数据库服务器。

  set user => “root”;

  set password => “f00b4r”;

  include qw/

  Common::NTP

  Service::MySQL

  /;

  set group => srvdb => “db01”;

  task “prepare”, group => “srvdb”, sub {

  # 运行常见ntp任务“prepare”

  Common::NTP::prepare();

  # 安装mysql

  Service::MySQL::prepare();

  # 配置mysql

  Service::MySQL::configure({

  key_buffer => “32M”,

  max_allowed_packet => “32M”,

  });

  # 重新启动mysql

  service mysql => “restart”;

  };

  首先(在第1行和第2行),我们设立了针对目标主机(db01)所用的验证机制。这里,你还可以使用密钥验证(欲知详情,请参阅http://rexify.org/howtos/start.html)。然后,我们添加了Common::NTP和Service::MySQL模块,那样我们可以从这些模块来使用服务。每个任务还登记为一个perl函数。所以,我们完全可以像调用其余任何perl函数那样来调用它们。我们添加了所需的模块后,定义了一个新的服务器组,名为“srvdb”,并为其添加了主机“db01”。可以为一个服务器组添加多个主机。比如:

  set group => srvdb => “db01”, “db02”, “db03”;

  set group => srvdb => “db[01..03]”;

  在第2行中,我们定义了第一个任务,名为“prepare”。该任务在服务器组“srvdb”中的所有服务器上执行。该任务调用Common::NTP和Service::MySQL模块的“prepare”任务。创建工作完毕后,我们在第20行配置了mysql服务器,在第26行重新启动了mysql服务。就这样。这将安装、配置和启动MySQL服务器。现在,你可以把一切重新提交到版本库。

  wks01 database# svn add Rexfile

  wks01 database# svn ci -m “inital commit of Rexfile”

  为了创建数据库服务器,你可以输入下列命令:

  wks01 database# rex prepare

  如果你想列出Rexfile里面的任务,可以使用下列命令。

  wks01 database# rex -T

  我们的数据库运行后,现在可以为website项目创建任务。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐