CHƯƠNG IV TRIỂN KHAI CÔNG CỤ CSLAB IV.1 Cài đặt SAKAI và công cụ CSLAB vào SAKAI Server

Một phần của tài liệu Phát triển công cụ hỗ trợ biên dịch và kiểm thử trên hệ thống sakai (Trang 76)

IV.1. Cài đặt SAKAI và công cụ CSLAB vào SAKAI Server

 Trong giới hạn của luận văn này, SAKAI Server được chạy với hệ điều hành Windows. Tuy nhiên, ta vẫn có thể cài đặt công cụ CSLab vào SAKAI Server dùng hệ điều hành Linux mà không có bất cứ trở ngại nào

b. Cài đặt JDK

 Tải phiên bản mới nhất của JDK ở trang web

http://www.oracle.com/technetwork/java/javase/downloads/index.html

 Cài đặt JDK với đường dẫn thư mục C:\java

 Thiết lập các biến môi trường

• Vào Start -> Control Panel -> System -> Advanced -> Environment Variables

• Bấm chọn New ở phần System Vaiables

• Nhập tên biến “JAVA_HOME” và giá trị “C:\ java\jdk1.5.0_22” (không có dấu “” ở hai đầu)

c. Cài đặt Tomcat

 Tải gói source Tomcat 5.5.26 từ

http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat- 5.5.26.zip

 Giải nén tập tin apache-tomcat-5.5.26.zip vào thư mục C:\tomcat

 Thiết lập các biến môi trường cho Tomcat

• Biến môi trường mới với tên biến “CATALINA_HOME” và giá trị “C:\tomcat” (không có dấu “” ở hai đầu)

• Chỉnh sửa biến môi trường PATH của Windows: thêm vào “;C:\tomcat\bin” (không có dấu “” ở hai đầu)

 Tạo tập tin setenv.bat có nội dung sau vào thư mục C:\tomcat\bin

set JAVA_OPTS=-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true}}

 Thiết lập Tomcat thành một dịch vụ của Windows: gõ các dòng lệnh sau trong cmd

service.bat install

tomcat5 //US//Tomcat5 ++JvmOptions "-Xmx768m;-Xms768m;- XX:PermSize=128m;-XX:MaxPermSize=256m;- Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=fa lse" d. Cài đặt Maven  Tải Maven 2.0.9 từ https://olex.openlogic.com/package_versions/download/6797? package_version_id=2027&path=openlogic%2Fmaven%2F2.0.9%2Fopenlogic-maven- 2.0.9-all-bin-1.zip

 Giải nén tập tin openlogic-maven-2.0.9-all-bin-.zip vào thư mục C:\maven

 Thiết lập các biến môi trường cho Maven

• Biến môi trường mới với tên biến “MAVEN_HOME” và giá trị “C:\maven” (không có dấu “” ở hai đầu)

• Biến môi trường mới với tên biến “MAVEN_OPTS” và giá trị “-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m” (không có dấu “” ở

 Tạo thư mục .m2 trong thư mục C:\Documents and Settings\Administrator

 Tạo thư mục repository trong thư mục .m2 vừa tạo

Chú ý: Administrator có thể được thay thế bằng tên users dùng để cài đặt và thực thi chương trình Maven (người cài đặt Sakai)

 Chép tập tin settings.xml có nội dung sau vào thư mục .m2 vừa tạo

<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <profiles> <profile> <id>tomcat5x</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <appserver.id>tomcat5x</appserver.id> <appserver.home>c:\tomcat</appserver.home> <maven.tomcat.home>c:\tomcat</maven.tomcat.home> <sakai.appserver.home>c:\tomcat</sakai.appserver.home> <surefire.reportFormat>plain</surefire.reportFormat> <surefire.useFile>false</surefire.useFile> </properties> </profile> </profiles> </settings> e. Cài đặt SAKAI

 Tải gói source SAKAI phiên bản 2.7.1:

http://source.sakaiproject.org/release/2.7.1/artifacts/sakai-src-2.7.1.zip

 Giải nén tập tin sakai-src-2.7.1.zip vào thư mục C:\sakai-src-2.7.1

 Tạo thư mục sakai trong thư mục C:\tomcat

 Chép tập tin sakai.property trong thư mục C:\sakai-src-2.7.1\reference\docs vào thư mục sakai vừa tạo

cd c:\sakai-src-2.7.1\master mvn clean install

 Deploy Sakai: gõ các dòng lệnh sau trong cmd

cd c:\sakai-src-2.7.1

mvn clean install sakai:deploy

 Khởi động Tomcat: gõ dòng lệnh sau trong cmd

startup.bat

 Tắt Tomcat: gõ dòng lệnh sau trong cmd

shutdown.bat

f. Cài đặt MySQL

 Tải MySQL phiên bản mới nhất từ http://dev.mysql.com/downloads/mysql/

 Cài đặt MySQL vào thư mục c:\mysql

 Thiết lập các biến môi trường cho MySQL

• Biến môi trường mới với tên biến “MYSQL_HOME” và giá trị “C:\mysql” (không có dấu “” ở hai đầu)

• Chỉnh sửa biến môi trường PATH của Windows: thêm vào “;C:\mysql\bin” (không có dấu “” ở hai đầu)

 Tải bản mới nhất về từ địa chỉ (ở đây ta dùng bản 5.0.8) http://dev.mysql.com/downloads/connector/j/

 Sau khi donload xong, ta có tập tin mysql-connector-java-5.0.8.zip, giải nén ra và lấy tập tin mysql-connector-java-5.0.8-bin.jar trong đó rồi xóa tất cả thứ khác

 Chép tập tin mysql-connector-java-5.0.8-bin.jar vào thư mục C:\tomcat\common\lib

 Tạo username và password cho SAKAI trong database từ giao diện nhập dòng lệnh của MySQL

identified by 'sakaipwd';

mysql> grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipwd';

mysql> flush privileges;

Trong trường hợp này, chúng ta sử dụng username là sakaiuser và password là sakaipwd

 Chỉnh sửa trong tập tin sakai.property • Tìm và chỉnh sửa 2 dòng sau:

Set username@javax.sql.BaseDataSource=sakaiuser Set password@javax.sql.BaseDataSource=sakaipwd

phần màu đỏ là phần username và password mà ta đã tạo ra trong database ở bước trên

 Tìm và comment các thông số trong phần HSQLDB setting:

## HSQLDB settings - on by default #vendor@org.sakaiproject.service.framework.sql.SqlService=h sqldb #driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDr iver #hibernate.dialect=org.hibernate.dialect.HSQLDialect #validationQuery@javax.sql.BaseDataSource=select 1 from SYSTEM_USERS

# two hsqldb storage options: first for in-memory (no persistence between runs), second for disk based

#url@javax.sql.BaseDataSource=jdbc:hsqldb:. #url@javax.sql.BaseDataSource=jdbc:hsqldb:$ {sakai.home}/db/sakai.db

## MySQL settings - make sure to alter as appropriate vendor@org.sakaiproject.db.api.SqlService=mysql driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Dri ver hibernate.dialect=org.hibernate.dialect.MySQLDialect url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sa kai?useUnicode=true&characterEncoding=UTF-8

validationQuery@javax.sql.BaseDataSource=select 1 from DUAL defaultTransactionIsolationString@javax.sql.BaseDataSource= TRANSACTION_READ_COMMITTED

Chú ý: phần màu xanh là địa chỉ máy cài MySQL trong trường hợp database của chúng ta được cài trong một máy khác

g. Cài đặt JsCH vào Maven Repository

 Vào trang http://www.jcraft.com/jsch/ download tập tin jsch-0.1.44.jar

 Vào folder chứa tập tin jsch-0.1.44.jar chạy command

mvn install:install-tập tin -DgroupId=jsch

-DartifactId=jsch -Dpackaging=jar -Dversion=0.1.44 -Dtập tin=jsch-0.1.44.jar -DgeneratePom=true

 Vào thư mục .m2 trong protập tin của user, xác nhận thư mục jsch xuất hiện bên trong

h. Cài đặt CSLab vào SAKAI

 Chép folder CSLab vào thư mục sakai-src-2.7.1

 Vào folder CSLab trong thư mục sakai-src-2.7.1, mở tập tin CSLab\tool\src\webapp\WEB-INF\web.xml, tìm đến mục

<context-param>

<param-name>LABREPO</param-name> <param-value>E:/REPO/</param-value> </context-param>

 Chỉnh sử param-value tùy ý, đây là thư mục gốc lưu trữ tất cả bài thực hành, metadata, submission…

 Trong folder CSLab, chạy command

a. Đối với Test Server chạy hệ điều hành Windows

 Ta có thể sử dụng gói cài đặt OpenSSH cho Windows, tải tại địa chỉ

http://sourceforge.net/projects/sshwindows/files/OpenSSH%20for%20Windows %20-%20Release/3.8p1-1%2020040709%20Build/setupssh381-

20040709.zip/download

 Sau khi tải về, giải nén để lấy được tập tin setupssh.exe

 Cài đặt bình thường vào thư mục C:\Program Files\OpenSSH

 Dừng dịch vụ SSH

 Vào command line của Windows, chuyển đường dẫn đến thư mục C:\Program Files\OpenSSH\bin

 Thực thi các câu lệnh sau đối với máy chỉ dùng các tài khoản trên máy

mkgroup -l >> ..\etc\group

mkpasswd -l [-u <username>] >> ..\etc\passwd

 Nếu máy dùng các tài khoản domain thì ta thực thi tiếp các câu lênh sau

mkgroup -d >> ..\etc\group (domain groups) mkpasswd -d [-u <username>] >> ..\etc\passwd  Khởi động lại dịch vụ SSH

 Chú ý là OpenSSH cho Windows phiên bản mới nhất là 4.7 chưa hỗ trợ hơn 10 kết nối từ một máy khách (ở đây là SAKAI Server)

b. Đối với Test Server chạy hệ điều hành Linux

Mặc định, OpenSSH đã được cài đặt vào các hệ điều hành Linux để chạy như một dịch vụ SSH. Tuy nhiên, đa số các phiên bản của OpenSSH được cài đặt sẵn thường là phiên bản 4.3, khá cũ so với phiên bản mới nhật hiện nay của OpenSSH là 5.6 và không hỗ trợ mở nhiều hơn 10 kết nối từ một máy khách đến máy chủ SSH. Vì thế, công việc cần làm của chúng ta là update phiên bản OpenSSH trên Test Server đến phiên bản mới nhất có thể.

Quá trình update OpenSSH được phân chia dựa theo dòng của hệ điều hành Linux trên Test Server

 Quá trình update trên máy chủ Linux dòng Debian: cụ thể là hệ điều hành Ubuntu

SAKAI Server)

 Quá trình update trên máy chủ Linux dòng Fedora: cụ thể là hệ điều hành CentOS

• Tạo tập tin /etc/yum.repos.d/centalt.repo có nội dung

[CentALT]

name=CentALT Packages for Enterprise Linux 5 - $basearch baseurl=http://centos.alt.ru/repository/centos/5/$basearch/ enabled=1

gpgcheck=0

• Tải tập tin libedit*.rpm phù hợp với hệ điều hành từ địa chỉ sau về và cài đặt

http://www.rpmfind.net/linux/rpm2html/search.php?query=libedit.so.0

• Thực thi lệnh upgrade

yum upgrade openssh

• Khởi động lại dịch vụ SSH và kiểm tra phiên bản của OpenSSH

$ /etc/init.d/sshd restart

Stopping sshd: [ OK ]

Starting sshd: [ OK ]

$ ssh -v

OpenSSH_5.5p1, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

IV.3. Cấu hình cho Test Server

a. Tạo multiple user

 Đối với Test Server chạy hệ điều hành Windows • Tạo 1 file user.txt với cấu trúc sau

<username>:<password>

• Tạo file adduser.bat với nội dung sau

For /f “TOKEN=1,2* DELIMS=:” %%1 in (user.txt) do net user %%1 “% %2” /add

• Chú ý:

(i) Các ký tự đặc biệt ở đây thường bị sai do format trong MS Word. Do đó, không nên copy các dòng lệnh trên mà nên gõ trực tiếp trên hệ thống (ii) Các user được tạo sẽ không có thư mục local profile cho đến khi user đăng nhập trực tiếp vào hệ thống lần đầu

 Đối với Test Server chạy hệ điều hành Linux • Tạo 1 group mặc định cho user

groupadd test

• Tạo 1 file adduser.srpt có nội dung sau:

for i in $(seq -w 1 300) do

echo user$i:password >> user.rsl; useradd user$i –g 501;

done

password là password mặc định cho tất cả user

501 là groupid của group test vừa tạo ở bước 1 • Đổi quyền thực thi cho file adduser.srpt

chmod 711 ./adduser.srpt

• Tạo file user.rsl

touch user.rsl

• Thực thi script tạo user

./adduser.srpt

• Tạo password cho các user vừa tạo

cat user.rsl | chpasswd

IV.4. Các lưu ý khi sử dụng

a. Hiện tại, công cụ chỉ phân biệt user với 2 quyền cơ bản của SAKAI

 Quyền update – có thể thay đổi nội dung site: admin, giảng viên,…

 Quyền không update: student

b. Các command thực thi trong tập tin script được thực thi riêng lẻ nhau, phân cách bằng dấu xuống dòng hay dấu “;”. Điều đó có nghĩa là công cụ chỉ hỗ trợ thực hiện các câu lệnh đơn trong hệ điều hành mà không thể thực hiện được một các câu lệnh phức tạp như for, while,… Tuy nhiên, giảng viên có thể thực thi các lệnh for,

while… trên bằng cách viết thành 1 tập tin script đặt sẵn trên Test Server và thực thi câu lệnh gọi tập tin script đó.

c. Vị trí con trỏ hiện hành khi thực thi câu lệnh luôn là thư mục home của user, không thể thay đổi vị trí này bằng các câu lệnh cd được. Để tách biệt môi trường các user, giảng viên nên dùng các đường dẫn tương đối tính từ thư mục home của user (các đường dẫn nên dùng có dạng ./folder1/folder2, trong đó dấu “.” đại biểu cho thư mục home của user).

d. Các chương trình của user bị loop vô tận trên Test Server sẽ bị kill tự động khi quá thời gian timeout. Tuy nhiên, trên hệ điều hành Linux, đôi khi một control terminal cho process đang chạy bị lack và không thể tự động kill chương trình được. Vì thế, trong các tập tin script, giảng viên nên thêm một câu lệnh kill process đã gọi. e. Threshold là thông số giới hạn connection tối đa từ một bài thực hành đến Test Server. Chú ý là khi SAKAI đang có nhiềi bài thực hành sử dụng 1 Test Server thì số connection tối đa vào Test Server đó sẽ là tổng số threshold của các bài thực hành. Thông số này được sử dụng để tránh bị dịch vụ SSH ở Test Server hiểu lầm SAKAI Server đang thực hiện một cuộc tấn công DOS vào Test Server. Các phiên bản OpenSSH trước 5.1 chỉ cho phép 10 connection đồng thời được mở từ một địa chỉ IP. Các phiên bản sau 5.1 cho phép chỉnh sửa số connection tối đa này trong thông số MaxSessions. Tuy nhiên, đối với các connection thứ 11 trở lên,tính sẵn sàng của dịch vụ là không cao.

 

                  CHƯƠNG V. TỔNG KẾT V.1. Các kết quả đạt được

a. Hiểu được mô hình xây dựng một Tool trên Sakai:

 Các dependency cần thiết.

 Các tập tin config cần thiết (pom.xml, web.xml, tool.xml …)

 Các dịch vụ chung có thể thềm vào và sử dụng thông qua các tập tin xml trong tomcat/component và Api Component Manager của Sakai.

b. Sử dụng Maven để quản lí thư viện một cách hiệu quả:

 Hiểu cách mà các project định nghĩa thông cua tập tin pom.xml, cơ chế quản lí project với nhiều module là các project khác.

 Cài đặt dependency vào repository, cách xác định dependency và sử dụng m2eclipse để đính kèm thư viện vào project, các attribute khi khai báo

dependency.

 Hiểu được các cơ chế transitive dependency, exclude dependency… c. Hiểu được cơ chế hoạt động và sử dụng JSF Framework

 JSF Lifecycle

 Các taglib của JSF

 Các component trong JSF

d. Hiểu được giao thức SSH và cách sử dụng thư viện JSCH cho lập trình SSH trong Java

Một phần của tài liệu Phát triển công cụ hỗ trợ biên dịch và kiểm thử trên hệ thống sakai (Trang 76)