用tarball实现liferay自动安装部署7-根据dnsdomainname判断节点环境

简介:

当tarball执行时候,它是如何判断这个节点所处的环境是qa,还是production 抑或是dev呢?显然,如果让管理员一个一个分配的话,那么将非常容易错,所幸的是,所有的不同环境的机器都分配在不同的network segment中,所以我们可以让脚本获得dnsdomainname的信息,然后进行加工来轻松获取环境信息:

 

 
 
  1. touch /tmp/dnsdomainname.txt 
  2.  
  3. dnsdomainname > /tmp/dnsdomainname.txt 
  4.  
  5. #get the dnsdomainname 
  6.  
  7. DNSDOMAINNAME=`cat /tmp/dnsdomainname.txt` 
  8.  
  9. echo "DNSDOMAINNAME is :  $DNSDOMAINNAME" 
  10.  
  11. rm -r /tmp/dnsdomainname.txt 
  12.  
  13.   
  14.  
  15. #make decision of the environment based on the dnsdomainname 
  16.  
  17.   
  18.  
  19. DEV_KEYWORD="dev" 
  20.  
  21. QA_KEYWORD="qa" 
  22.  
  23. PROD_KEYWORD="prod" 
  24.  
  25.   
  26.  
  27. declare -i IS_DEV_ENV 
  28.  
  29. declare -i IS_QA_ENV 
  30.  
  31. declare -i IS_PROD_ENV 
  32.  
  33.   
  34.  
  35. IS_DEV_ENV=`echo $DNSDOMAINNAME | grep $DEV_KEYWORD | wc -l` 
  36.  
  37. IS_QA_ENV=`echo $DNSDOMAINNAME | grep $QA_KEYWORD | wc -l` 
  38.  
  39. IS_PROD_ENV=`echo $DNSDOMAINNAME | grep $PROD_KEYWORD | wc -l` 
  40.  
  41.   
  42.  
  43. # Download from Storage 
  44.  
  45.   
  46.  
  47. if [ "$IS_DEV_ENV" -gt "$ZERO" ]; 
  48.  
  49.         then 
  50.  
  51.                 ENVIRONMENT_TYPE=dev 
  52.  
  53.                 LIFERAY_TOMCAT_BUNDLE_DOWNLOAD_ADDR="http://10.242.8.206:4227/storage/paas/installer/liferay/community-edition-liferay-portal-tomcat-6.1.0.zip" 
  54.  
  55.                 echo "the environment of this machine is dev " 
  56.  
  57.   
  58.  
  59.   
  60.  
  61. elif [ "$IS_QA_ENV" -gt "$ZERO" ]; 
  62.  
  63.         then 
  64.  
  65.                  ENVIRONMENT_TYPE=qa 
  66.  
  67.                  LIFERAY_TOMCAT_BUNDLE_DOWNLOAD_ADDR="http://10.242.8.206:4227/storage/paas/installer/liferay/community-edition-liferay-portal-tomcat-6.1.0.zip" 
  68.  
  69.                  echo "the environment of this machine is qa" 
  70.  
  71.   
  72.  
  73.   
  74.  
  75. elif [ "$IS_PROD_ENV" -gt "$ZERO" ]; 
  76.  
  77.         then 
  78.  
  79.                  ENVIRONMENT_TYPE=prod 
  80.  
  81.                  LIFERAY_TOMCAT_BUNDLE_DOWNLOAD_ADDR=http://ndc-staas-app1.prod.gecwalmart.com:4227/storage/paas/installer/liferay/community-edition-liferay-portal-tomcat-6.1.0.zip 
  82.  
  83.                  echo "the environment of this machine is prod" 
  84.  
  85.   
  86.  
  87.   
  88.  
  89. else 
  90.  
  91.     #the default one ,the environment is dev 
  92.  
  93.                  ENVIRONMENT_TYPE=dev 
  94.  
  95.         LIFERAY_TOMCAT_BUNDLE_DOWNLOAD_ADDR="http://10.242.8.206:4227/storage/paas/installer/liferay/community-edition-liferay-portal-tomcat-6.1.0.zip" 
  96.  
  97.         echo "the environment of this machine is dev" 
  98.  
  99.   
  100.  
  101.   
  102.  
  103. fi 
  104.  
  105.   
  106.  
  107. echo "The liferay tomcat bundle zip file is accessable from  $LIFERAY_TOMCAT_BUNDLE_DOWNLOAD_ADDR" 
  108.  
  109.   

 

从这里可以看出,(01-11行)我的思路是首先把dnsdomainname的输出读到一个临时文件中,并用cat读取这个文件,然后删除临时文件:

 

然后对于读取的内容,因为我们已经有了一些约定,所以可以很轻松的识别出这个机器所处的环境,(15-39行)方法是看这个dnsdomainname中是否有"qa","prod","dev"的字眼出现。

 

最终当识别出环境之后,我们就可以吧环境保存到变量中,并且被configure.sh中所使用了。当然了,这个环境的不同还会影响到tomcat zip bundle下载地址的不同。

 





本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/979805,如需转载请自行联系原作者

目录
相关文章
|
小程序 JavaScript
最新微信小程序反编译工具,完美解决分包问题
看了很多反编译、找回微信小程序源码很多教程,各种问题导致都没法正常使用。微信版本升级后,会遇到各种报错, 以及无法获取到wxss分包无法反编译的问题。于是寻找资料,也买过别人的破解工具,最终解决文件缺失和分包问题,而且无意中发现还能获取小游戏的源码,于是和大家分享下。
最新微信小程序反编译工具,完美解决分包问题
|
物联网 Java Linux
luajit简介
luajit简介
778 2
|
JSON 算法 数据安全/隐私保护
使用asp开发 希音shein开放平台接口调用记录
最近接了个小项目要求通过希音的开放平台接口采集一些数据导入到工厂erp系统。当然了我主要是负责采集,说是采集,其实就是通过接口获取数据,并不是被动获取,是合法的在授权下进行的一种操作。客户指定要求用asp语言,这种古老语言,呵呵,一般平台代码范例都不做考虑的,但是根据文档硬是给撸出来了。
880 0
使用asp开发 希音shein开放平台接口调用记录
|
语音技术
FunASR英文离线文件转写软件包问题之实时语音听写软件包功能如何解决
FunASR英文离线文件转写软件包问题之实时语音听写软件包功能如何解决
311 0
|
Web App开发 Linux Android开发
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
|
敏捷开发 开发框架 JavaScript
很牛!Github 上 10 个值得学习的 Springboot 开源项目
很牛!Github 上 10 个值得学习的 Springboot 开源项目
13350 0
|
域名解析 弹性计算 网络安全
CEN+私网NAT实现跨地域访问云服务需求-CEN企业版
本文介绍了如何通过企业版云企业网和私网NAT配置,实现ECS内网跨地域访问OSS资源的方法。该方法避免了跨地域配置云服务网段时可能出现的管控异常问题,适用于其他云服务如MQ等。
460 1
|
传感器 人工智能 监控
未来出行的革新:智能交通系统的崛起
【10月更文挑战第9天】 智能交通系统(ITS)正在改变我们未来的出行方式。本文深入探讨了ITS的技术原理、关键组成部分以及其在不同领域的实际应用,并讨论了面临的挑战及未来发展的前景。通过阐述这些内容,本文揭示了智能交通系统在提升交通效率、安全性和可持续性方面的巨大潜力。
|
存储 网络协议 网络虚拟化
【计算机网络】简答题_考试必备
这份自学指南涵盖了计算机网络基础的重要概念,包括电路交换、分组交换、报文交换的特点,计算机网络分类及OSI七层模型等。第一章介绍了不同交换方式的特点及网络分类;第二章涉及奈失准则、香农公式及信道复用技术;第三章探讨数据链路层的问题及网络类型;第四章讲解虚电路与数据报服务及路由协议;第五章对比TCP与UDP协议特点,并介绍URL。此外,还详细分析了电路交换、报文交换和分组交换的优缺点,以及互联网发展的几个关键阶段和标准制定流程。通过这些章节的学习,读者可以全面了解计算机网络的基本原理和技术细节。
426 10
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。