Tải bản đầy đủ (.pdf) (9 trang)

Cài đặt Tomcat và triển khai các ứng dụng web với Rex pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (348.08 KB, 9 trang )

Cài đặt Tomcat và triển khai các ứng dụng web
với Rex
Tomcat là một Java Servlet thi hành các ứng dụng Java Servlet và
JavaServer Pages (JSP) từ Sun Microsystems, và cung cấp một máy chủ
HTTP cho ngôn ngữ Java thuần túy để thực thi các chương trình lệnh viết
bằng ngôn ngữ Java.
Trong bài hướng dẫn này chúng tôi sẽ giúp các bạn có thể quản lý các cài đặt
Tomcat của mình và triển khai những ứng dụng web một cách lặp đi lặp lại với
Rex. Mặc dù phần minh họa này chúng tôi sử dụng Debian Squeeze, nhưng Rex
cũng có sẵn cho các distribution khác.

Thông tin về Rex
Rex là một công cụ được viết trong Perl, giúp dễ dàng quản lý và triển khai nhiều
máy chủ. Điểm khởi đầu của một dự án Rex chính là tập tin Rexfile của nó. Rex sẽ
phân tích file này và thực thi các tác vụ được quy định trên các máy chủ của bạn.
Bạn cũng có thể hiểu một cách đơn giản nó giống như một Makefile, nhưng được
viết trong Perl.
Mỗi Rexfile đều được chia thành tasks, bạn có thể xác định tác vụ cho từng bước
một cách hợp lý để cài đặt và cấu hình cho các máy chủ của mình.
Các phần mềm
Bạn chỉ cần duy nhất Rex trên máy trạm của mình, không cần phần mềm nào khác
cho các server. Ngoài ra hãy lưu ý sử dụng quyền root khi truy cập ssh tới máy
chủ.
Người dùng có thể dễ dàng tải về Rex từ trang chủ rexify.org/get/. Các gói này có
sẵn cho CentOS, Debian, Ubuntu, Fedora, Mageia và OpenSuSE. Tất cả đều có
sẵn CPAN.
Đối với Debian chỉ cần thêm vào kho lưu trữ Rex cho đường dẫn sources.list.d của
bạn:
echo 'deb squeeze
rex' >> /etc/apt/sources.list
Sau đó thêm khóa GPG tới apt:


wget -O - />REXIFY-REPO | apt-key add -
Và tiến hành cài đặt phần mềm. Chúng ta sẽ cài đặt rex cho công cụ core và rex-
apache-deploy cho module deployment.
apt-get update && apt-get install rex rex-apache-deploy
Chuẩn bị Rexfile và thực thi tác vụ đầu tiên
Trước tiên chúng ta sẽ tạo thư mục tomcat và thay đổi nó:
mkdir tomcat; cd tomcat
Sau đó checkout các module Rex Example từ github trong thư mục lib. Ở đó bạn
sẽ nhận được sự giúp đỡ về module tomcat và apache.
git clone />modules.git lib
Tiếp theo chúng ta tạo tập tin Rexile và mở nó với trình soạn thảo mà mình đang
dùng. Nếu bạn sử dụng vim bạn có thể chạy dòng lệnh dưới đây để kích hoạt việc
tô đậm cú pháp:
:set ft=perl
:syn on
# File: Rexfile
# at first enable strict and warnings
use strict;
use warnings;
# than include all needed example modules
use ALLMODS; # this sets the include path to the rex
example modules
use apache; # include apache module
use apache::module;
use tomcat; # include tomcat module
use tomcat::user;
use tomcat::role;
# set user and password to login to your servers
user "root";
password "test";

# enable password authentication.
pass_auth;
# if you want to use key authentication use the
following
# and comment out the line "pass_auth"
# public_key "/path/to/your/public.key";
# private_key "/path/to/your/private.key";
# define a server group named "tomcat".
# put all your servers you want to deploy in that
group.
group tomcats => "tc01", "tc02";
desc "Install and Configure Apache and Tomcat";
task "prepare", group => "tomcats", sub {
apache::setup();
apache::module::setup({name => "jk"});
tomcat::setup();
tomcat::role::add_manager();
tomcat::user::add_manager({
username => "manager",
password => "passw0rd",
});
apache::restart();
tomcat::restart();
# take care that the services will start on system
boot
service apache2 => "ensure", "started";
service tomcat6 => "ensure", "started";
};
Bây giờ lưu lại tập tin này và mở bằng terminal, sau đó thay đổi thư mục tomcat.
Để thực thi một tác vụ được tạo ra trên máy chủ chỉ cần gọi nó:

rex prepare
Nếu bạn muốn xem các tác vụ của mình, có thể sử dụng tùy chọn -T:
rex -T
Cấu hình Apache/modjk
Sau khi cài đặt xong apache và tomcat bạn cần cấu hình Apache/modjk để chuyển
hướng các yêu cầu tới tomcat.
Để thực hiện điều này bạn cần tạo thư mục có tên files để lưu lại các tập tin cấu
hình của mình ở đó.
mkdir files
## File: files/worker.properties
## this file is managed by rex
##
worker.list=tc,jkstatus
worker.tomcat.port=8009
worker.tomcat.host=<%+ $::Network-
>{"networkconfiguration"}->{"eth0"}->{"ip"} %>
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
worker.tomcat.reference=worker.template
worker.tc.type=lb
worker.tc.balance_workers=tomcat
worker.tc.sticky_session=false
worker.jkstatus.type=status
worker.template.type=ajp13
Như bạn thấy ở đây, có một biến đặc biệt trong file này. Rex có một hệ thống xây
dựng các template, và với sự thể hiện trên bạn sẽ nhận được IP của thiết bị mạng
etho.
## File: files/modjk.conf
## this file is managed by rex
##

JkWorkersFile /etc/apache2/worker.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/jk.shm
JkMount /* tc
# Add the jkstatus mount point
JkMount /jkmanager/* jkstatus
<Location /jkmanager/>
JkMount jkstatus
</Location>
Trong các kịch bản realworld cũng có một server.xml. Nhưng trong hướng dẫn
này bạn chỉ cần bản vá tập tin để kích hoạt kết nối AJP.
Bây giờ mở tập tin Rexfile của bạn và thêm một tác vụ thứ hai có tên configure:
desc "Configure Apache and Tomcat";
task "configure", group => "tomcats", sub {
# remove default vhost
unlink "/etc/apache2/sites-enabled/000-default";
# upload the file, but parse the file as a template
file "/etc/apache2/worker.properties",
content => template("files/worker.properties"),
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# upload the configuration files
file "/etc/apache2/conf.d/modjk.conf",
source => "files/modjk.conf",
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };

# patch server.xml to allow ajp access
# in realworld use a template for this file
my $content = cat "/etc/tomcat6/server.xml";
$content =~ s/<\/Service>/<Connector port="8009"
protocol="AJP\/1.3" redirectPort="8443"
\/>\n<\/Service>/;
file "/etc/tomcat6/server.xml",
content => $content,
on_change => sub { tomcat::restart(); };

};
Tiếp theo bạn có thể chạy tác vụ configure cho cấu hình server của mình.
rex configure
Triển khai các ứng dụng
Sau khi triển khai và cấu hình máy chủ của mình, bạn cần tải lên các ứng dụng
phục vụ cho server.
Có một module Rex cho việc triển khai các tác vụ đơn giản gọi là
Rex::Apache::Deploy mà bạn đã cài đặt nó.
Trong phần bài viết này bạn sẽ triển khai psi-probe. Bạn có thể tải về tại đây. Tạo
một thư mục có tên packages, giải nén tập tin zip và copy file probe.war vào thư
mục vừa tạo.
mkdir packages
cd packages
wget />2.2.3.zip
unzip probe-2.2.3.zip
Mở Rexfile của bạn và đặt vào dòng lệnh dưới đây:
# include deployment support for tomcat
use Rex::Apache::Deploy "Tomcat";
Và tạo một tác vụ thứ ba có tên deploy.
desc "Deploy the application";

task "deploy", group => "tomcats", sub {
# set the context path for our tomcat application
context_path "/psiprobe";
# deploy the app.
deploy "packages/probe.war",
username => "manager",
password => "passw0rd",
port => 8080;
};
Chạy đồng thời toàn bộ các tác vụ
Bây giờ bạn có thể thực thi cả ba tác vụ cùng lúc mà không cần chạy từng lệnh
một bằng cách định nghĩa một file batch.
Mở Rexfile của mình và gán thêm vào đó dòng lệnh sau:
desc "Execute all tasks prepare, configure and deploy";
batch all => "prepare", "configure", "deploy";
Cuối cùng bạn chỉ cần chạy lệnh sau để thực thi tác vụ:
rex -b all
Sau khi khởi chạy chúng, bạn có thể truy cập các ứng dụng được triển khai dưới
/psiprobe trên máy chủ của mình.

×