Как распределить конфигурацию websphere server (источники данных,jms,...) по нескольким экземплярам?
Для команды разработчиков очень важно, чтобы все настроили и настроили сервер приложений. В нашем случае мы используем websphere 8.5.
Я ищу простой способ сделать это. Обычно вы делаете это с помощью инструмента управления профилями, расположенного в каталоге WAS_HOME/bin/ProfileManagement, и этот инструмент работает очень хорошо. Но после установки websphere server все равно нужно настроить профиль сервера - создать источники данных, очереди JMS, шины, переменные и так далее. Так Что Я я подумал, что было бы неплохо, если бы существовал способ применить эти конфигурации к существующему профилю.
Моей первой попыткой было просто настроить один профиль, а затем сделать резервную копию конфигурации с помощью
%WAS_HOME%/bin/backupConfig.bat
Но конфигурация содержит, например, имя хоста и другие конфигурации, зависящие от хоста. Итак, backupConfig.летучая мышь инструмент не то, что я ищу.
Следующая мысль, пришедшая мне в голову, заключается в том, что я мог бы создать специальную профильную табличку. Так что другие могут использовать инструмент управления профилем и используйте этот шаблон. Но структура шаблона, похоже, не предназначена для настройки. Множество файлов и почти никакой документации не может быть найдено о том, как создать собственный шаблон профиля.Итак, я наткнулся на шаблоны аугментов. Эти шаблоны используются (как следует из названия) для добавления определенной конфигурации к существующему профилю. Я нашел много документации о том, как применить увеличение к существующему профилю, но нет документации о том, как создать прирост.
Наконец, я думаю, что должен быть какой-то способ экспорта websphere datasource, шины, jms и т. д. конфигурирование и применение их к другим профилям, потому что в очень больших установках оперативная группа должна иметь такую возможность.
Я знаю, что могу добавить в ухо специфичные для контейнера дескрипторы. Например, META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/resources.xml
. Но я не хочу создавать файлы EAR для конкретной среды, потому что это связывает наши сборки с инфраструктурой, и поэтому мы должны создавать и повторно развертывать, когда когда-либо операции изменяют инфраструктуру, например имена хостов, IP-адреса, пароли.
Кто-нибудь знает, как управлять распределением источников данных, шин, jms и т. д. несколько экземпляров WebSphere?
3 ответа:
В дополнение к сценариям wsadmin, которые очень хороши для таких задач, я бы предложил конфигурацию на основе свойств. Это может быть более полезным для вас, так как он позволяет экспортировать много объектов конфигурации в одно время, а затем применить его к различным средам. Это также может быть немного проще, так как вы работаете с обычными текстовыми файлами вместо скриптов jython.
Конфигурация на основе файла свойств позволяет:
- извлеките данные из хранилища конфигурации, чтобы создание свойств файлы.
- обновите файл свойств, чтобы управлять конфигурацией, как необходимый.
- применить обновленные данные в файле свойств к целевому объекту хранилище конфигураций.
Смотрите более подробную информацию здесь:
конфигурация на основе свойств
документация инфоцентра
помощник по образованию
Я предлагаю вам использоватьwsadmin shell scripting и создать скрипт для создания ресурса. Бонус заключается в том, что вы можете запустить его непосредственно из RAD (щелкните правой кнопкой мыши Run As->Administrative Script).
Вот полный пример, написанный на Jython для создания ресурса JDBC вместе с регистрационной информацией JAAS (примечание: Я использую Oracle Database, ваша настройка может отличаться в зависимости от используемой базы данных):
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()
Я только что вспомнил инструмент wsadmin и думаю, что это лучший способ реализовать мои требования.
К счастью, IBM предоставляетпримеры сценариев , которые показывают, как создавать источники данных или изменять их с помощью сценариев jython или jacl.
Пример создания источников данных можно найти, например, в скриптах администрирования (1-12) -- Jython version (file ex7.py в ЗИПе)
Надеюсь, что это поможет другим, у кого есть такой же или подобный вопрос.