2014-10-17 3 views
6

Мне нужно выдать команды оболочки Karaf не интерактивно, желательно из сценария. В частности, я должен сказать Карафу feature:install набор функций в автоматическом режиме.Сценарий команды оболочки Karaf?

# Attempt to install a feature in a way I could script 
bash> bin/karaf feature:install myFeature 
# Drops me into Karaf shell 
karaf> feature:uninstall myFeature 
Error executing command: Feature named 'myFeature' is not installed 
# Feature wasn't installed 

Возможно ли это? Есть ли другой способ решения этой проблемы (автоматическая установка набора функций Karaf), которую я пропускаю?

ответ

-1

Так что общая практика заключается в том, чтобы установить эту функцию, а затем петля на комплекте: list | grep bundleName, чтобы узнать, установлены ли нужные вам пакеты. Затем вы продолжите тест.

+0

Это может быть полезной информацией при работе с karaf, но это не ответ на вопрос (как не интерактивно выдавать команды в karaf). – hoijui

3

С помощью bin/karaf вы запускаете Karaf с приглашением на вход, если вы хотите запустить Karaf, чтобы вы могли выдавать команды, которые вам сначала нужно запустить Karaf в режиме сервера. Для этого используйте скрипт bin/start shell. Теперь вы можете использовать команды bin/client или bin/shell для связи с Karaf в режиме безглавых.

Например:

./bin/client list 
START LEVEL 100 , List Threshold: 50 
ID | State | Lvl | Version | Name 
---------------------------------------------------------------------------------- 
72 | Active | 80 | 0  | mvn_org.ops4j.pax.web.samples_war_4.1.0-SNAPSHOT_war 

Это должно работать на всех версиях Karaf уже (может быть, не 2.2.x линии ;-))
Если версия вы используете это 3.0.x или вам может потребоваться добавить пользователя к команде.

./bin/client -u karaf list 
+0

Я вижу ошибку «Ошибка при получении сеанса», но это вероятно, другая проблема. Спасибо за информацию! – dfarrell07

+0

похоже, что вам понадобится пользователь с клиентом. В этом случае попробуйте использовать -u 'user'. Не знаю, какой пользователь ODL использует, но может быть легко найден в файле users.properties в папке etc. –

+0

'karaf = karaf, _g_: admingroup' кажется соответствующей линией. Все еще видя 'Не удалось получить сеанс. ', Используя' ./bin/client -u karaf list'. – dfarrell07

1

Возможно, выдать неинтерактивные команды оболочки Karaf с использованием sshpass, если сохранение секретности пароля не имеет значения.

sshpass -p karaf ssh -tt -p 8101 -o StrictHostKeyChecking=no [email protected] feature:install odl-l2switch-switch-ui 

Рабочий пример в OpenDaylight's Vagrant-based L2Switch Tutorial.

Смежные вопросы