linux指导:Rex管理服务器创建数据库任务
创建数据库任务更换到数据库版本库。
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";
在第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项目创建任务。
页:
[1]