bash 脚本编程二十 GlassFishV3自动部署


1.先点击这里下载最新版本的glassfish。

解压后放到工程目录下。

然后根据自己的需要修改glassfish/domains/domain1/config/domain.xml文件的配置。

注意config/asenv.conf文件中添加jdk路径,防止JSP报错。

AS_JAVA=/usr/jdk1.6 

2.现在需要几个函数帮助检查用户和组,并能够创建系统用户及其目录,创建用户组,

因此在tool.sh中添加了四个函数:

  1. #$1 user name  
  2. #return 1 if exists  
  3. #return 0 if doesn't exist  
  4. function haSUSEr {  
  5.     h=`grep "$1" /etc/passwd`  
  6.     echo "h: $h"  
  7.     if [ -n "$h" ]  
  8.     then  
  9.     return 1  
  10.     else  
  11.     return 0  
  12.     fi  
  13. }  
  14.   
  15. #$1 user group name  
  16. #return 1 if exists  
  17. #return 0 if doesn't exist  
  18. function hasUserGroup {  
  19.     h=`grep "$1" /etc/group`  
  20.     echo "h: $h"  
  21.     if [ -n "$h" ]  
  22.     then  
  23.     return 1  
  24.     else  
  25.     return 0  
  26.     fi  
  27. }  
  1. #remove user and home folder  
  2. #then create then again  
  3. function recreateSystemUserAndFolder {  
  4.     hasUser $1  
  5.     r=$?  
  6.       
  7.     if [ $r -eq 1 ]  
  8.     then  
  9.     echo "$1 exits already,remove it..."  
  10.     userdel -r $1  
  11.     else  
  12.     echo "$1 doesn't exist,create it..."  
  13.     fi  
  14.     adduser --home /home/$1 --system --shell /bin/bash $1    
  15. }  
  16.   
  17. #remove user group   
  18. #then create it again  
  19. function recreateUserGroup {  
  20.     hasUserGroup $1  
  21.     r=$?  
  22.     if [ $r -eq 1 ]  
  23.     then  
  24.     echo "$1 exists already, remove it..."  
  25.     delgroup $1  
  26.     else  
  27.     echo "$1 doesn't exist, create it..."  
  28.     fi  
  29.     groupadd $1  
  30. }  

3.现在创建系统服务吧。

准备好glassfish脚本:

  1. export AS_JAVA=/usr/jdk1.6  
  2.    
  3. GLASSFISHPATH=/home/glassfish/bin  
  4.    
  5. case "$1" in  
  6. start)  
  7. echo "starting glassfish from $GLASSFISHPATH"  
  8. sudo -u glassfish $GLASSFISHPATH/asadmin start-domain domain1  
  9. ;;  
  10. restart)  
  11. $0 stop  
  12. $0 start  
  13. ;;  
  14. stop)  
  15. echo "stopping glassfish from $GLASSFISHPATH"  
  16. sudo -u glassfish $GLASSFISHPATH/asadmin stop-domain domain1  
  17. ;;  
  18. *)  
  19. echo $"usage: $0 {start|stop|restart}"  
  20. exit 3  
  21. ;;  
  22. esac  
  23. :  

最后看一下install.sh

  1. #!/bin/bash   
  2.   
  3. source ../common/tool.sh  
  4.   
  5. glassfishUser="glassfish"  
  6. glassfishGroup="glassfishadm"  
  7.   
  8.   
  9. recreateSystemUserAndFolder $glassfishUser  
  10.   
  11. recreateUserGroup $glassfishGroup  
  12.   
  13. usermod -a -G $glassfishGroup $glassfishUser  
  14.   
  15. chgrp -R $glassfishGroup /home/$glassfishUser  
  16.   
  17. cp -r ./glassfish3/* /home/$glassfishUser/  
  18. cp -r ./glassfish3/.org.opensolaris,pkg /home/$glassfishUser/.org.opensolaris,pkg  
  19.   
  20. chown -R $glassfishUser /home/$glassfishUser  
  21. chmod -R ug+rwx /home/$glassfishUser/bin/  
  22. chmod -R ug+rwx /home/$glassfishUser/glassfish/bin/  
  23. chmod -R o-rwx /home/$glassfishUser/bin/  
  24. chmod -R o-rwx /home/$glassfishUser/glassfish/bin/  
  25.   
  26. cp ./glassfish /etc/init.d/  
  27. update-rc.d glassfish defaults  
  28.   
  29. service glassfish start  

每次都会先删除已存在的用户和组,以及目录。

最后给出目录结构:

$ tree -L 1 

├── glassfish 
├── glassfish3 
└── install.sh 
 
1 directory, 2 files 
chenshu@sloop2:~/work/1 

 

 

 

 

 

 

 

相关内容