В качестве best practices управления weblogic-доменами предлагается использовать NodeManager.
NodeManager запускается один на хост и может обслуживать несколько managed-серверов, принадлежащих одному или нескольким доменам.
5. Удобная настройка новых серверов на удалённых машинах.
6. Миграция серверов.
Настройка запуска AdminServer через NodeManager.
В домене, который был развёрнут таким образом, admin-сервер уже располагается на машине AdminMashine и его уже можно конфигурировать для запуска с помощью NodeManager. Для переноса существующего admin-сервера можно воспользоваться, например, советом James Bayer.
Настройка NodeManager:
1. Стартуем NodeManager из скрипта:
В файле /etc/hosts должны быть соответствующие записи
Benefits от использования:
1. Возможность управления managed-серверами через админскую консоль.
2. Возможность автоматического выключения\рестарта серверов в случае ошибки.
3. Автоматический запуск управляемых серверов.
4. Возможность восстановления состояния серверов до состояния, предшествующего "неожиданному выключению" (это значит, что если ваш сервер перед сбоем находился в состоянии standby, он запустится в standby, а не running)
6. Миграция серверов.
Настройка запуска AdminServer через NodeManager.
В домене, который был развёрнут таким образом, admin-сервер уже располагается на машине AdminMashine и его уже можно конфигурировать для запуска с помощью NodeManager. Для переноса существующего admin-сервера можно воспользоваться, например, советом James Bayer.
Настройка NodeManager:
1. Стартуем NodeManager из скрипта:
${MW_HOME}/wlserver_10.3/server/bin/setWLSEnv.shПосле старта в каталоге ${MW_HOME}/wlserver_10.3/common/nodemanager создаются файлы:
${MW_HOME}/wlserver_10.3/server/bin/startNodeManager.sh
- nodemanager.domains - файл со списком доменов
- nodemanager.properties - конфигурационный файл NodeManager
- nm_data.properties - симметричный ключ
ListenAddress=srv1.siteАдрес и порт на котором NodeManager будет слушать.
ListenPort=5556
В файле /etc/hosts должны быть соответствующие записи
127.0.0.1 localhost.localdomain localhost
10.0.0.128 srv1.site srv1
QuitEnabled=true
Разрешить выключение NM из консоли WLST
SecureListener=false
Отключить SSL и оставить авторизацию на основе логина\пароля. Это избавит от кучи warning-ов в консоли из-за использования тестового сертификата. Как настроить хранилище сертификатов я напишу потом.
Остальные переменные можно оставить как есть.
3. При разворачивании домена из шаблона генерируются новые логин и пароль для nodemanager. Их можно сменить через web-консоль. Надо заметить, что это не единстенный способ поменять логин с паролем, но зато наглядный.
Запускаем AdminServer
Запускаем AdminServer
4. Запущенный через скрипт startWeblogic, сервер использует переменные окружения и переменные, заданные в самом скрипте.
При запуске через Nodemanager их нужно задавать отдельно. Можно сделать это через страницу ServerStart. Какие именно значения задать можно посмотреть по той же ссылке. У меня они выглядят так:
5. Настройка машины. Указываем, на каком порту и адресе искать NodeManager и его тип. Установленное во втором пункте значение SecureListener=false соответствует типу Plain
6. Настраиваем запуск admin-сервера без ввода пароля. Cоздаём файл, если он ещё не создан.
8. Завершаем процесс NodeManager.
После выполнения этих действий мы имеем следующую конфигурацию:
Сконфигурированный для запуска на 5556-ом порту NodeManager, использующий нешифрованое соединение. Авторизация в NodeManager проходит с использованием только логина/пароля.
Сконфигурированный AdminServer, хранящий логин\пароль для запуска в шифрованном файле и настроенный на запуск из Nodemanager-a.
Теперь можно запустить NodeManager через WLST и остановить\запустить AdminServer
1. Запускаем консоль WLST:
Готово.
При ручном вводе команд передача логина и пароля вполне приемлема. Если же запуск происходит из скрипта, то лучшим вариантом будет шифровать пароль. Для этого нужно соединиться с NodeManager
При запуске через Nodemanager их нужно задавать отдельно. Можно сделать это через страницу ServerStart. Какие именно значения задать можно посмотреть по той же ссылке. У меня они выглядят так:
5. Настройка машины. Указываем, на каком порту и адресе искать NodeManager и его тип. Установленное во втором пункте значение SecureListener=false соответствует типу Plain
6. Настраиваем запуск admin-сервера без ввода пароля. Cоздаём файл, если он ещё не создан.
${DOMAIN_HOME}/servers/AdminServer/security/boot.propertiesвот такого содержания
username=логин администратора домена
password=пароль администратора домена
При следующем запуске сервера пароли хэшируются и в открытом виде не хранятся.
7. Cоздаём файл, если он ещё не создан.
Этот пункт опционален. В одном из следующих шагов будет выплнена команда nmEnroll, и после её выполнения этот файл оздатся автоматически. Почему-то у моих коллег это происходит не всегда. Сам я этот баг не встречал.7. Cоздаём файл, если он ещё не создан.
${DOMAIN_HOME}/config/nodemanager/nm_password.properties
И вписываем в него логин и пароль для NodeManager-a
username=логин_NodemanagerФайл нужен для аутентификации соединения между клиентом (например, AdminServer-ом) и NodeManager-ом.
password=Пароль_Nodemanager
После выполнения этих действий мы имеем следующую конфигурацию:
Сконфигурированный для запуска на 5556-ом порту NodeManager, использующий нешифрованое соединение. Авторизация в NodeManager проходит с использованием только логина/пароля.
Сконфигурированный AdminServer, хранящий логин\пароль для запуска в шифрованном файле и настроенный на запуск из Nodemanager-a.
Теперь можно запустить NodeManager через WLST и остановить\запустить AdminServer
1. Запускаем консоль WLST:
${MW_HOME}/wlserver_10.3/server/bin/setWLSEnv.sh2. соединяемся с Админ-сервером
$ java weblogic.WLST
connect('login','password','t3://localhost:7001')3. Получаем данные для авторизации в NodeManager от админ-сервера.
nmEnroll('${DOMAIN_HOME}','${MW_HOME}/wlserver_10.3/common/nodemanager')и отсоединяемся от админ-сервера
disconnect()4. Запускаем NodeManager. В качестве аргумента передаём ${NODEMANAGER_HOME}, путь к месту, где лежит файл nodemanager.properties.
wls:/offline> startNodeManager(NodeManagerHome='${MW_HOME}/wlserver_10.3/common/nodemanager')В логе запуска можно посмотреть текущие параметры запуска. Последняя строка болжна быть
Plain socket listener started on port 5556, host ...5. Соединяемся с Nodemanager. Указываем
- логин, который меняли в пункте 3
- пароль
- адрес, на котором слушает NM,
- порт,
- имя домена,
- путь к папке с доменом,
- тип NM.
nmConnect('weblogic','password','srv1.site','5556','${DOMAIN_NAME}','${DOMAIN_HOME}','Plain')6. Останавливаем\запускаем admin-сервер
nmKill('AdminServer')7. Останавливаем NodeManager
nmStart('AdminServer')
stopNodeManager()или отсоединяемся
nmDisconnect()
Готово.
При ручном вводе команд передача логина и пароля вполне приемлема. Если же запуск происходит из скрипта, то лучшим вариантом будет шифровать пароль. Для этого нужно соединиться с NodeManager
wls:/offline> nmConnect('weblogic','password','srv1.site','5556','${DOMAIN_NAME}','${DOMAIN_HOME}','Plain')и сохранить данные для авторизации в каком-нибудь безопасном месте. Лучше с правами 500
wls:/nm/wl_sm> storeUserConfig('${PATH_TO_NMCONFIG}/nmConfig.secure','${PATH_TO_NM_KEY}/nmKey.secure','true')Теперь для подключения можно использовать вот такую команду
wls:/offline>
nmConnect('${PATH_TO_NMCONFIG}/nmConfig.secure','${PATH_TO_NM_KEY}/nmKey.secure','srv1.site','5556','${DOMAIN_NAME}','${DOMAIN_HOME}','Plain')
Комментариев нет:
Отправить комментарий