用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分包无法反编译的问题。于是寻找资料,也买过别人的破解工具,最终解决文件缺失和分包问题,而且无意中发现还能获取小游戏的源码,于是和大家分享下。
最新微信小程序反编译工具,完美解决分包问题
|
JSON 算法 数据安全/隐私保护
使用asp开发 希音shein开放平台接口调用记录
最近接了个小项目要求通过希音的开放平台接口采集一些数据导入到工厂erp系统。当然了我主要是负责采集,说是采集,其实就是通过接口获取数据,并不是被动获取,是合法的在授权下进行的一种操作。客户指定要求用asp语言,这种古老语言,呵呵,一般平台代码范例都不做考虑的,但是根据文档硬是给撸出来了。
923 0
使用asp开发 希音shein开放平台接口调用记录
|
Web App开发 Linux Android开发
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
|
敏捷开发 开发框架 JavaScript
很牛!Github 上 10 个值得学习的 Springboot 开源项目
很牛!Github 上 10 个值得学习的 Springboot 开源项目
13514 0
|
JSON JavaScript 数据格式
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
|
负载均衡 监控 测试技术
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
487 0
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
|
PyTorch Linux 算法框架/工具
pip安装'torch'出现PackageNotFoundError报错解决办法
pip安装'torch'出现PackageNotFoundError报错解决办法
806 2
pip安装'torch'出现PackageNotFoundError报错解决办法
|
消息中间件 存储 API
【Docker】7、Docker安装RabbitMQ服务
–hostname RabbitMQ存储数据的节点名称,默认是主机名,不指定更改主机名启动失败,默认路径/var/lib/rabbitmq/mnesia -p 指定宿主机和容器端口映射(5672:服务应用端口,15672:管理控制台端口)
1727 0
|
消息中间件 缓存 NoSQL
【微服务】如何实现微服务集群的高可靠?
这篇文章我们来聊聊在微服务架构中,到底如何保证整套系统的高可用? 随着业务规模扩大,微服务可以 解决单体应用膨胀、团队开发耦合度高、协作效率低下等等问题。
1048 1
|
安全 架构师 前端开发
Java证书哪个含金量高?
下面小编将详细介绍一下含金量高的JAVA证书,避免大家在不需要的考试上浪费时间。
 Java证书哪个含金量高?