Karaf Shell

Karaf Shell — это командная строка, предоставляемая Apache Karaf для управления и конфигурирования контейнера OSGi.

Основные команды и конфигурирование системы

Управление конфигурацией (config)

Управление конфигурациями доступно через:

  • Редактирование файлов через доступ к файловой системе сервера;

  • Shell команды при прямом подключении к Apache Karaf;

  • Web консоль в меню OSGI → Configuration.

Shell команды:

config:list

Показывает список всех конфигураций в текущем экземпляре Karaf.

config:edit <pid>

Редактирует конфигурацию с указанным PID.

config:propset <key> <value>

Устанавливает значение конфигурационного свойства с заданным ключом.

config:propdel <key>

Удаляет конфигурационное свойство с указанным ключом.

Управление бандлами (bundles)

bundle:list

Отображает список всех установленных бандлов в текущем экземпляре Karaf.

bundle:install <url>

Устанавливает бандл из указанного URL.

bundle:start <id>

Запускает бандл с указанным ID.

bundle:stop <id>

Останавливает бандл с указанным ID.

Управление фичами (features)

feature:list

Показывает список всех доступных фич.

feature:install <feature>

Устанавливает указанную фичу.

feature:uninstall <feature>

Удаляет указанную функцию.

Управление брокером

При помощи утилиты командной строки можно создавать экземпляры брокера, управлять экземплярами брокера, очередями, пользователями. Описание доступных команд можно посмотреть выполнив команду:

./artemis --help

Удалённое управление

Karaf поддерживает SSH доступ для удалённого управления:

ssh -p 8101 karaf@localhost

Если возникнет отказ в подключении с сообщением "Unable to negotiate with 127.0.0.1 port 8101: no matching host key type found. Their offer: ssh-rsa", используйте такой вариант подключения:

ssh -p 8101 -oHostKeyAlgorithms=+ssh-rsa karaf@localhost

Установка библиотек

Сервер Apache Karaf поддерживает установку библиотек без использования OSGI обёрток и описаний через папку <karaf_home>/lib:

  • Помещаем библиотеку в папку;

  • Прописываем в etc/config.properties в свойство org.osgi.framework.system.packages.extra необходимые пакеты;

  • Перезагружаем Karaf.

Доступны варианты установки бандлов/библиотек:

  • Установка/настройка через папку <karaf_home>/lib

  • Горячая установка через папку <karaf_home>/deploy

  • Установка с помощью команд через shell оболочку

  • Установка с помощью команд через web консоль

Экспорт зависимостей

Экспорт зависимостей возможен через:

  • Написание OSGI бандла с прописанными экспортами

  • Установка библиотеки в OSGI контейнер с использованием обёртки (wrapper) (не требует доработок);

  • Копирование библиотеки в папку lib и настройка через config.properties

Жизненные циклы OSGI бандла

Состояния жизненного цикла OSGI бандла:

  • INSTALLED - успешно установлен;

  • RESOLVED - разрешены все зависимости.
    Бандлу доступны все Java-классы и те бандлы, от которых он зависит. Данное состояние показывает, что бандл готов к старту;

  • STARTING - бандл стартует. Метод BundleActivator.start() выполняется и пока не вернул значения;

  • ACTIVE - бандл успешно запустился. Метод BundleActivator.start() вернул значение;

  • STOPPING - останавливается бандл. Метод BundleActivator.stop() вызван, но пока не вернул значения;

  • UNINSTALLED - бандл не установлен (удален), соответственно он не может переходить в другие состояния. Жизненный цикл бандла завершен;

  • FAILURE - бандл не может быть запущен в связи с ошибкой

Доступ к Shell через webconsole

В этой инструкции мы рассмотрим, как получить доступ к shell через webconsole если у вас нет к нему прямого доступа.

  1. Установка webconsole:

    • Зайдите в веб-консоль Entaxy http://localhost:8181/hawtio

    • Перейдите в раздел OSGI и выберите вкладку Features;

    osgi features
    • В поисковой строке введите webconsole и установите найденный пакет webconsole/4.2.9, нажав на кнопку Install.

      webconsole
      webconsole install
  2. Доступ к webconsole

  3. Готово!