Konfiguracja serwera aplikacji EuroAP w trybie Managed Domain – część II

Konfiguracja serwera aplikacji EuroAP w trybie Managed Domain

Druga część podstawowej konfiguracji serwera aplikacji EuroAP i pokrewnych w trybie Managed Domain. W poprzedniej omówiliśmy strukturę katalogów oraz znaczenie pliku host.xml. Dziś skupimy się na pliku domain.xml zawierającym konfigurację domeny.

Konfigurację zarządzanej domeny tworzy połączenie host.xml i domain.xml. Pliki te wzajemnie się uzupełniają i tworzą spójną całość. Przy czym dane z host.xml mają wyższy priorytet niż wartości z domain.xml.

W pliku domain.xml możemy deklarować zmienne, a konkretną wartość przypisywać im w host.xml. Często ten mechanizm jest używany przy konfigurowaniu elementów <path> i <interface>. Np. gdy chcemy w konfiguracji domain.xmlmóc odwoływać się do nazwanej ścieżki czy interfejsu. Z drugiej strony ich wartości są zależne np. od systemu operacyjnego i bardziej intuicyjne jest podawanie ich w momencie, gdy mamy tego rodzaju informacje, czyli w host.xml. Na przykład:

    <interfaces>
        <interface name="management"/>
    </interfaces>

domain.xml

    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
    </interfaces>

host.xml

host.xml i domain.xml muszą być ze sobą kompatybilne. Gdybyśmy w pliku host.xml odwołali się do grupy serwerów, która nie jest zdefiniowana w domain.xml, domena nie wystartowałaby.

Domain.xml a standalone.xml

EuroAP w trybie Standalone uruchamia tylko jeden serwer, który ma przypisany dokładnie jeden profil. W trybie Managed Domain zarządzamy całą domeną – robimy to przy pomocy logicznej jednostki, jaką jest grupa serwerów. Każda grupa serwerów ma przypisany jeden profil.

domain.xml ma bardzo podobną strukturę do standalone.xml, a różnice wynikają tylko z podanej wyżej definicji:

  • w domain.xml możemy definiować wiele profili.

jeden profil:

<profile>
...
</profile>

wiele profili:

<profiles>
    <profile>
       ...
    </profile>
</profiles>
  • w domenie definiujemy grupy serwerów, dlatego w domain.xml mamy dodatkowo znacznik <server-groups>
  • ponadto w standalone.xml w sekcji managemnet mamy konfigurację security-realms , która w zarządzanej domenie jest definiowana w host.xml.

struktura domain.xml

Struktura domain.xml przedstawia się następująco:

<domain xmlns="urn:jboss:domain:10.0">
    <extensions...>
    <management...>
    <profiles...>
    <interfaces...>
    <socket-binding-groups...>
    <server-groups..>
</domain>

Jak zauważyliśmy wcześniej, jest ona bardzo podobna do standalone.xml, szczegółowo opisanej w artykule „Konfiguracja serwera aplikacji EuroAP w trybie Managed Domain – część I”. Dlatego teraz zajmiemy się tylko różnicami, czyli <profiles> i <server-groups>.

Profiles

EuroAP udostępnia 5 predefiniowanych profili oraz możliwość tworzenia własnych. Definicje poszczególnych profili zawarte są w elemencie:

<profiles>
    <profile name="nazwa-profilu">
        ...
    </profile>
</profiles>

W domenie każda grupa serwerów ma przypisany jeden profil. Profil może być użyty w wielu grupach. W standalone.xml mieliśmy jeden nienazwany profil. W domain.xml musimy mieć możliwość odwołania się do profilu, aby móc go przypisać do grupy. Zatem atrybut name jest obowiązkowy.

Server-group

Element <server-groups> zawiera zbiór elementów server-group   definiujących grupy serwerów. Obowiązkowymi atrybutami grupy jest jej nazwa (name) i profil (profile), z jakim serwery będą działać, jak również grupa wiązania gniazd (socket-binding-group). Ponadto można zdefiniować atrybuty JVM (które mogą zostać nadpisane w host.xml) oraz wdrożone aplikacje.

 <server-groups>
        <server-group name="nazawa-dla-tej-grupy" profile="full">
            <jvm name="default">
                <heap size="1000m" max-size="1000m"/>
            </jvm>
            <socket-binding-group ref="full-sockets"/>
            <deployments>
                <deployment name="hello-world-1.0.war" runtime-name="hello-world-1.0.war"/>
            </deployments>
        </server-group>
       ...
</server-groups>

Aby usunąć grupę serwerów, musimy najpierw usunąć wszystkie należące do niej serwery, gdyż host.xml i domain.xml muszą być spójne.

Wdrożone aplikacje

Aplikacje w EuroAP i pokrewnych systemach wdrażamy na grupę serwerów. Nie możemy wdrożyć aplikacji na pojedynczy serwer zdefiniowany w host.xml. Można wdrożyć oczywiście na grupę serwerów, w skład której wchodzi tylko jeden serwer i otrzymać taki efekt. Wciąż jednak logicznie wdrażamy na grupę serwerów ;)

Wdrożenia definiowane są w elemencie <deployment> i wymagane jest podanie atrybutów name oraz runtime.

<deployments>
    <deployment name="hello-world-1.0.war" runtime-name="hello-world-1.0.war"/>
</deployments>

Podsumowanie

Tym sposobem zakończyliśmy omawianie podstaw konfiguracji EuroAP w trybie zarządzanej domeny. Na zakończenie pragnę przypomnieć, że nie edytujemy plików konfiguracyjnych z ręki. Na nich łatwo zobaczyć, co się w konfiguracji dzieje oraz jakie elementy się na nią składają. Bardzo łatwo jednak zepsuć konfigurację – o literówce czy błędzie merytorycznym dowiemy się, dopiero gdy serwer aplikacji nie będzie w stanie się uruchomić.

Warto również zaznaczyć, że poradnik ten znajdzie zastosowanie także wśród użytkowników JBoss Enterprise Application Platform, ponieważ rozwiązania te są tożsame i działą tak samo.

Korzystajmy z dedykowanych narzędzi – graficznej konsoli użytkownika lub CLI (Command Line Interface). Więcej przykładów, jak ich używać, wkrótce na naszym blogu. Stay tuned :)