CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

争分夺秒地发布:自动化应用程序推进

作者: Paul Nixon,  出处:Dev2Dev, 责任编辑: 叶江, 
2007-08-17 13:04
  在本文中,我将展示对一个测试环境进行自动部署的工作如何重用于其他测试环境……

  要实现这一点,您需要向供应脚本添加几行代码(新增行添加到片段的最后面):

  import environment
  profile = environment.getProfile()
  weblogic_listen_port = int(profile[ 'managed.server.listen.port' ])
  hostnames = profile[ 'managed.server.hosts' ]
  managed_server_count = len( hostnames )
  cluster_list = ''
  for idx in range( managed_server_count ) :
  listen_address = hostnames[idx]
  interface_address = listen_address
  managedServer = create( managedServerName, 'Server' )
  managedServer.setInterfaceAddress( interface_address )
  managedServer.setListenAddress( interface_address )
  cluster_list = \
  cluster_list + listen_address + ":" + str(weblogic_listen_port)
  if 'cluster.dns.name' in profile :
  cluster.setClusterAddress( profile['cluster.dns.name'] )
  else :
  cluster.setClusterAddress( cluster_list )
  f = open('weblogic.conf', 'w')
  f.write('\n')
  f.write(' WebLogicCluster ')
  f.write(cluster_list)
  f.write('\n')
  f.write(' MatchExpression *.jsp\n')
  f.write('\n')
  f.close()
  f = None
  f = open('httpd.conf', 'w')
  f.write('Listen = ')
  f.write( str( profile[ 'apache.listen.port' ] ) )
  f.write('\n')
  f.write('LoadModule weblogic_module modules/mod_wl_20.so\n')
  f.write('\n')
  f.write(' Include conf/weblogic.conf\n')
  f.write('\n')
  f.close()

  最后面的行创建两个文件:httpd.conf和weblogic.conf,分别用于配置Apache Web服务器和WebLogic插件。下面是httpd.conf形式的输出内容:

  Listen = 8080
  LoadModule weblogic_module = modules/mod_wl_20.so
  Include conf/weblogic.conf

  下面是从environment.py生成的weblogic.conf:

  WebLogicCluster hostname_1:7001,hostname_2:7001,hostname_3:7001MatchExpression *.jsp

  httpd.conf的配置使用键值 apache.listen.port,该键值从我们的environment.py文件中获得。但是要注意,插件的配置使用配置 WebLogic群集本身产生的副产品所累积的数据。WebLogic域配置数据曾经用于配置另一个相关的组件。这种配置数据的共享可以避免互相依赖的组件配置之间的不一致性。

  注意,这是使用的技术(即直接使用Jython编写配置)并不是很恰当,只有在配置文件很小的时候才适合这样做。实际操作中,包括Apache Web服务器文件在内的许多配置文件都很大,不能简单的这样处理。在这种情况下,最好使用Jython输出带有配置值的属性文件,然后使用 Ant导入该属性文件,并根据配置文件模式执行标记替换。从WLST脚本中使用Ant很简单:安装了 WebLogic Platform 8.1和9.x的情况下,BEA包含一个运行Ant的Jython脚本。

  不要使用过多的参数

  编写适应性强的脚本的价值在于可以用于多个环境。但是,您不应该使用过多的参数。不要为不会随环境改变的属性和值创建参数,即使您的脚本会设置默认值。不必要的参数会使脚本更加复杂,使其变得更加难以理解。记住,您正试图创建的是可重用的脚本,可以在您进行其他项目之后仍然能被他人使用。每一个不必要的参数都会给您的继承者带来潜在的问题:“为什么所有环境采用相同值时要设置这个变量呢?我是不是哪里搞错了?”记住,您的继承者很可能有您的电子邮件地址和电话号码,会追问您可能早已不记得的事情!

  结束语

  BEA WebLogic Platform安装带来了三个功能强大的脚本工具:WLST、Jython和Ant。这些脚本工具可以用来构建强大的、适应性强的、可维护的供应和部署脚本,这些脚本可用于所有项目需要的环境来确保您的应用程序能够满足其需求。脚本不仅可以增强环境构建间的统一性,而且可以减少工作量,真是一举两得。

共8页。 9 3 4 5 6 7 8

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       

该文章的读者还阅读了

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i