争分夺秒地发布:自动化应用程序推进
在本文中,我将展示对一个测试环境进行自动部署的工作如何重用于其他测试环境……
要实现这一点,您需要向供应脚本添加几行代码(新增行添加到片段的最后面):
| 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。这些脚本工具可以用来构建强大的、适应性强的、可维护的供应和部署脚本,这些脚本可用于所有项目需要的环境来确保您的应用程序能够满足其需求。脚本不仅可以增强环境构建间的统一性,而且可以减少工作量,真是一举两得。
- 本文关键词:

