会计考友 发表于 2012-8-4 12:07:07

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]
查看完整版本: linux指导:Rex管理服务器创建数据库任务