CLI
Uruchomienie CLI jest realizowane z użyciem skryptu jboss-cli.sh. Na początku należy podłączyć się do serwera za pomocą polecenia connect. Opcjonalnie powyższe kroki można wykonać wykonać w trybie wsadowym.
./jboss-cli.sh –-connect 192.168.10.1 –-user=admin1234 –-password=password1234!
Inną ciekawym przełącznikiem jest --file umożliwiający uruchamianie gotowych skryptów CLI.
./jboss-cli.sh jboss-cli.bat –-file=myscript.cli
Komendy być także uruchomiane w trybie nieinteraktywnym po podaniu ich z przełącznikiem --command lub --commands.
./jboss-cli.sh --commands="connect,deploy Utility.jar“
Ze względów administracyjnych możliwe jest uruchomienie CLI w trybie w którym możliwe będzie zarządzanie konfiguracją, jednak sam serwer i jego usługi nie będą działały.
./standalone.sh --admin-only
reload --admin-only=false
Konsola aktywnie wspiera administratora podpowiadając zarówno poszczególne elementy ścieżki jak i możliwe operacje do wykonania po naciśnięciu klawisza tab.
Każde polecenie CLI składa się z trzech części:
- adresu poprzedzonego /
- nazwy operacji poprzedzonej :
- opcjonalną listą parametrów podanych w nawiasach, po przecinku, w postaci klucz=wartość
Adres może składać się z wielu członów, a każdy człon ma postać /node-type=node-name
/subsystem=undertow/server=default-server/http-listener=default/:read-resource()
/subsystem=undertow/server=default-server/http-listener=default/:read-attribute(name=enabled)
/socket-binding-group=standard-sockets/socket-binding=http/:write-attribute(name=port,value=8280)
/subsystem=naming/binding=myname/:add(binding-type=simple,cache=false,value=value)
/subsystem=logging:read-children-resources(child-type=log-file)
Każdy z zasobów może posiadać dodatkowe, specyficzne operacje
/subsystem=naming/:jndi-view
CLI można także uruchomić w trybie graficznym
./jboss-cli.sh –-gui
Istnieje możliwość uruchamiania poleceń w trybie wsadowym. Jeśli jakakolwiek operacja się nie powiedzie pozostałe zostaną wycofane.
[standalone@localhost:9990 /] batch
[standalone@localhost:9990 /#] deploy MyApplication.jar
[standalone@localhost:9990 /#] /system-property=myprop:add(value=myvalue)
[standalone@localhost:9990 /#] run-batch
Istnieje możliwość pokazania / wylistowania dodanych dodanych komend.
standalone@localhost:9990 /] list-batch
A także możliwość wstrzymania, a później wznowienia operacji batch np. kiedy trzeba w między czasie wykonać niezależnie inną operację.
[standalone@localhost:9990 / #] undeploy myproject.war
#1 undeploy myproject.war
[standalone@localhost:9990 / #] holdback-batch
Wznowienie dodawania poleceń odbywa się przez ponowne wykonanie komendy batch. Co więcej istnieje także możliwość robienia savepointów
[standalone@localhost:9990 /# ] holdback-batch step1
...
[standalone@localhost:9990 /] batch step1
Instrukcje w trybie wsadowym mogą być składowane i uruchamiane z pliku.
run-batch --le=myscript.cli --verbose
Wszystkie dokonane zmiany konfiguracji są automatycznie zapisywane i można je odtworzyć tak jak przy systemach kontroli wersji (katalogi standalone_xml_history i domain_xml_historyw katalogu z konfiguracją).
Zawartość:
- standalone.initial.xml - oryginalna konfiguracja, zapisana po pierwszym poprawnym uruchomieniu serwera. Ten plik nie jest nadpisywany
- standalone.boot.xml - plik nadpisywany po każdym poprawnym uruchomieniu serwera
- standalone.last.xml - plik nadpisywany po każdej zmianie konfiguracji
Oprócz tego mamy katalog current który jest czyszczony przy starcie i zawiera 100 ostatnich zmian konfiguracji. Przy każdym uruchomieniu serwera folder jest kopiowany z znacznikiem czasowym i trzymany przez 30 dni.
Ostatnim folderem jest snapshot gdzie trzymane są zrzuty konfiguracji wykonane jawnie z CLI.
:take-snapshot
:list-snapshots
:delete-snapshot(name="20131108-171642235standalone.xml")
Zawieszanie serwera (pozwala na przetworzenie istniejących żądań bez przyjmowania nowych). Klienci dostają status 503. W czasie kiedy serwer jest zawieszony nadal można zarządzać konfiguracją i wykonywać deploy/undeploy.
:suspend
:read-attribute(name=suspend-state)
:resume
Przykłady komend konfiguracyjnych
Interfejsy sieciowe
Zmiana adresu interfejsu administracyjnego (zaleca się żeby robić to przez parametry startowe).
/interface=management/:write-attribute(name=inet-address,value=${jboss.bind.address.management:192.168.10.1 })
Zmiana adresu interfejsu publicznego.
/interface=public/:write-attribute(name=inet-address,value=${jboss.bind.address:192.168.10.1})
Usostępnienie interfejsu na wszystkich adresach IP.
/interface=public/:write-attribute(name=inet-address,value=${jboss.bind.address:0.0.0.0})
Wszystkie powyższe zmiany wymagają przeładowania konfiguracji
reload
Porty
Określenie / modyfikacja portów
./standalone.sh -Djboss.http.port=8280
/socket-binding-group=standard-sockets/socket-binding=http/:write-attribute(name=port,value=${jboss.http.port:8180})
Dodawanie ścieżki
/path=logpath/:add(path=/home/logs)
/path=mydir/:add(relative-to=jboss.server.base.dir)
Properties
Praca ze zmiennymi
/system-property=mykey/:add(value=value)
/system-property=mykey/:read-resource(recursive=false)
/system-property=mykey/:remove
/core-service=platform-mbean/type=runtime:read-attribute(name=system-properties)
Zarządzanie na poziomie domeny
Podłączenie do kontrolera domeny
./jboss-cli.sh --connect controller=192.168.0.1:9990
Po naduszeniu tab pokazują się nowe opcje do zarządzania domeną. Dla nas istotne są:
- profile - pozwala na zarządzanie profilami zdefiniowanymi w domenie
- host - operacje wykonywane na poszczególnych hostach (start/stop/restart/reload)
- server-group - wykonywanie operacji na grupach serwerów
Przykłady użycia
Modyfikacja ustawień profilu polegająca na zmianie ustawień timeoutu dla SLSB
/profile=full/subsystem=ejb3/strict-max-bean-instance-pool=slsb-strict-max-pool:write-attribute(name=timeout,value=100)
Wykonanie restartu server-one dostępnego na host master
/host=master/server-config=server-one:restart
Dodanie nowego serwera
/host=master/server-config=server-five:add(auto-start=false, socket-binding-port-o set=400, group=main-server-group)
/host=master:read-children-names(child-type=server-config)
/host=master/server-config=server-five:start
Usuwanie zatrzymanego serwera.
/host=master/server-config=server-five:remove
Sprawdzanie informacji o wybranych parametrach serwera.
/host=master/server=server-one/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)
Zarządzanie Host Controllerem (po zatrzymaniu należy ponownie odpalić domain.sh).
/host=slave:reload
/host=slave:shutdown
Operowanie na grupie serwerów.
/server-group=main-server-group:restart-servers
/server-group=main-server-group:reload-servers