对于开发人员团队而言,每个人都必须设置和配置应用程序服务器。在我们的例子中,我们使用的是websphere 8.5。
我正在寻找一种简单的方法来做到这一点。通常使用位于WAS_HOME / bin / ProfileManagement中的配置文件管理工具来执行此操作,此工具可以很好地运行。但是在安装websphere服务器之后,仍然需要配置服务器配置文件 - 创建数据源,JMS队列,总线,变量等。所以我认为如果有办法将这些配置应用于现有的配置文件会很好。
我的第一次尝试是只配置一个配置文件,然后使用
进行配置备份 %WAS_HOME%/bin/backupConfig.bat
但配置包含例如主机名和其他主机相关配置。所以backupConfig.bat工具不是我想要的。
我想到的下一个想法是,我可以创建一个特殊的profileTemplate。以便其他人可以使用配置文件管理工具并使用此模板。但模板结构似乎不是为了定制。很多文件和几乎没有文档可以找到如何创建自己的配置文件模板。
所以我遇到了扩充模板。使用这些模板(顾名思义)将特定配置添加到现有配置文件。我发现了很多关于如何将扩充应用于现有配置文件的文档,但没有关于如何创建扩充的文档。
最后我认为必须有一些方法可以导出websphere数据源,总线,jms等配置,并将它们应用到其他配置文件中,因为在非常大的安装中,运营团队必须具备这种能力。
我知道我可以向EAR添加特定于容器的描述符。例如。 META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/resources.xml
。但我不想构建特定于环境的EAR文件,因为它将我们的构建与基础架构耦合,因此我们必须在操作改变基础架构时构建和重新部署,例如,主机名,IP,密码。
有没有人知道如何管理数据源,总线,jms等在多个websphere安装中的分布?
答案 0 :(得分:3)
除了wsadmin脚本 - 这些脚本非常适合这类任务外,我还建议使用基于属性的配置。它可能对您更有用,因为它允许一次导出许多配置对象,然后将其应用于不同的环境。它也可能更容易一些,因为你使用纯文本文件而不是jython脚本。
基于属性文件的配置使您能够:
在此查看更多详情:
Properties-based configuration
Infocenter documentation
Education assistant
答案 1 :(得分:1)
我建议你使用wsadmin shell scripting并创建一个资源创建脚本。奖励是您可以直接从RAD运行它(右键单击Run As-> Administrative Script)。
以下是Jython中用于创建JDBC资源以及JAAS登录信息的完整示例(注意:我使用的是Oracle数据库,根据您使用的数据库,您的设置可能会有所不同):
cell=AdminConfig.showAttribute(AdminConfig.list("Cell"), "name")
node=AdminConfig.showAttribute(AdminConfig.list("Node"), "name")
#Add JAAS credentials
print "Adding JAAS credentials"
security = AdminConfig.getid('/Cell:'+cell+'/Security:/')
alias = ['alias', node+'/dbUser']
userid = ['userId', 'DBUSER']
password = ['password', 'PASSWORD']
jaasAttrs = [alias, userid, password]
AdminConfig.create('JAASAuthData', security, jaasAttrs)
AdminConfig.save()
#Add JDBC jar path
print "Adding JDBC jar path"
AdminTask.setVariable('[-variableName ORACLE_JDBC_DRIVER_PATH -variableValue ${WAS_INSTALL_ROOT}/lib/ext -scope Cell='+cell+',Node='+node+']')
AdminConfig.save()
#JDBC Provider print "Adding JDBC Provider"
AdminTask.createJDBCProvider('[-scope Node='+node+',Server=server1 -databaseType Oracle -providerType "Oracle JDBC Driver" -implementationType "Connection pool data source" -name "Oracle JDBC Driver" -description "Oracle JDBC Driver-compliant Provider." -classpath ${ORACLE_JDBC_DRIVER_PATH}/ojdbc6.jar]')
AdminConfig.save()
#JDBC Datasources print "Creating Datasource"
AdminJDBC.createDataSourceAtScope("Node="+node+",Server=server1", "Oracle JDBC Driver", "test", "jdbc/test", "com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper", "jdbc:oracle:thin:@10.0.0.1:1521:TEST", [['componentManagedAuthenticationAlias', node+'/test'], ['containerManagedPersistence', 'true']])
AdminConfig.save()
答案 2 :(得分:0)
我只是重新编写了wsadmin工具并猜测它是实现我的要求的最佳方式。
幸运的是,IBM提供了sample scripts,它向您展示了如何使用jython或jacl脚本创建数据源或修改它们。
例如,可以在Administration scripts (1-12) -- Jython version(zip中的文件ex7.py)中找到如何创建数据源的示例
希望这可以帮助那些有相同或类似问题的人。