Domain i Host Controller – konfiguracja na przykładzie serwera aplikacji EuroAP
Korzystając z serwera aplikacji EuroAP, mamy możliwość uruchomienia serwera (lub serwerów) w trybie Standalone lub Domain. W dzisiejszym artykule przyjrzymy się nieco bliżej, jak skonfigurować współpracujące ze sobą Domain Controller oraz Host Controller w trybie Managed Domain. Skupimy się na praktycznym przykładzie takiej konfiguracji.
Korzystając z serwera aplikacji EuroAP, mamy możliwość uruchomienia serwera (lub serwerów) w trybie Standalone lub Domain. W dzisiejszym artykule przyjrzymy się nieco bliżej, jak skonfigurować współpracujące ze sobą Domain Controller oraz Host Controller w trybie Managed Domain. Skupimy się na praktycznym przykładzie takiej konfiguracji.
W przypadku wcześniejszego braku styczności z trybem Domain, przed przeczytaniem tego artykułu, zachęcamy do zapoznania się z treścią wpisu Konfiguracja serwera aplikacji – tryb Domain – garść teorii. EuroAP jest budowane w oparciu o kod źródłowy JBoss EAP, dlatego poniższe informacje mają zastosowanie także do tego rozwiązania.
Wydzielenie konfiguracji dla poszczególnych serwerów
Aby zobrazować konfigurację o relacji Master-Slave, posłużymy się prostą strukturą składającą się z dwóch instancji Hostów. Będziemy do tego potrzebować dwóch niezależnych konfiguracji:
- Master (Domain Controller)
- Slave (Host Controller).
W przykładzie wykorzystamy serwer aplikacji EuroAP w najnowszej (na dzień pisania artykułu) wersji 7.4.1.
Zakładając, że mamy już zainstalowany serwer aplikacji (w razie problemów odsyłamy do artykułu Pierwszy raz z serwerem aplikacji EuroAP), tworzymy dwie kopie domyślnej konfiguracji serwera domain, które znajdują się w folderze instalacyjnym EuroAP:
- dla Domain Controller – w lokalizacji
/opt/domain-controller
:
cp -a $EUROAP_HOME/domain/configuration /opt/domain-controller
- dla Host Controller – w lokalizacji
/opt/host-controller
:
cp -a $EUROAP_HOME/domain/configuration /opt/host-controller
Konfiguracja
Przed uruchomieniem serwerów, należy je skonfigurować. Użyjmy domyślnych plików konfiguracyjnych, które wcześniej skopiowaliśmy z instancji EuroAP. W przypadku Domain Controller będzie to /opt/domain-controller/configuration/host-master.xml
, natomiast w przypadku Host Controler /opt/host-controller/configuration/host-slave.xml
.
host-master.xml
przechowuje minimalną konfigurację dla Domain Controller
, bez instancji serwerów. Definiuje tylko Management Network Interface
. Konfiguracja ta nie może być używana, jeżeli Domain Controller ma zawierać instancje serwerów – NIE JEST to zalecane rozwiązanie.
host-slave.xml
– konfiguracja dla Host Controller zawierająca przykładowe instancje serwerów oraz grupy serwerów (takie same jak w przypadku domyślnego pliku host.xml
). Konfiguracja ta używa parametrów jboss.domain.master.address
i jboss.domain.master.port
, aby określić adres IP Domain Controller
oraz jego port.
Domyślna konfiguracja host-master.xml
dla naszego dzisiejszego przykładu będzie wystarczająca, jednak host-slave.xml
będzie wymagał pewnych modyfikacji. Przejdźmy do działania.
Otwieramy nasz plik konfiguracyjny w dowolnym edytorze tekstu. W artykule wykorzystaliśmy Vima:
vim /opt/host-controller/configuration/host-slave.xml
Następnie, na samym początku nadajemy dowolną nazwę naszemu hostowi, np.myServerA
:
Dalej musimy wskazać adres IP Domain Controller
oraz określić port, na którym jest on uruchomiony. Służą do tego parametry wskazane na poniższym zrzucie ekranu. Za przechowywanie adresu Domain Controller
odpowiedzialny jest parametr jboss.domain.master.address
, a za przechowywanie portu parametr jboss.domain.master.port
W naszym przypadku jest to adres 127.0.0.1
lub localhost
, ponieważ serwery uruchamiamy lokalnie (jest to domyślna wartość).
Port został zmieniony na 10990 (domyślnie jest ustawiony na 9990), co wyjaśnimy podczas uruchamiania serwerów.
Uruchomienie serwerów
Kiedy pliki konfiguracyjne są już gotowe, czas uruchomić nasze serwery:
- Domain Controller:
$EUROAP_HOME/bin/domain.sh -Djboss.management.http.port=10990 -Djboss.management.native.port=10999 -Djboss.domain.base.dir=/opt/domain-controller/ --host-config=host-master.xml
- Host Controller:
$EUROAP_HOME/bin/domain.sh -Djboss.management.http.port=20990 -Djboss.management.native.port=20999 -Djboss.domain.base.dir=/opt/host-controller/ --host-config=host-slave.xml
Szybkie uzupełnienie, jeśli chodzi o powyższe polecenia i parametry:
$EUROAP_HOME/bin/domain.sh
– komenda wykonuje skryptdomain.sh
, który uruchamia serwer aplikacji-Djboss.management.http.port=10990 -Djboss.management.native.port=10999
– te dwa parametry są potrzebne do wskazania, na jakich portach zostanie uruchomiony serwer. Są to kluczowe parametry, w przypadku kiedy chcemy uruchomić dwa hosty na tej samej maszynie. Gdybyśmy nie zmienili tych wartości, mielibyśmy konflikt, ponieważ serwery próbowałyby się uruchomić na tym samym domyślnym porcie (9990), co nie jest możliwe-Djboss.domain.base.dir=/opt/domain-controller/
– wskazuje miejsce, w którym znajduje się nasza konfiguracja--host-config=host-master.xml
– wskazuje, z jakiego pliku ma zostać zaciągnięta konfiguracja.
Po poprawnym uruchomieniu obu serwerów w logach Domain Controller
powinna ukazać się informacja o poprawnym podłączeniu Host Controller myServerA
:
[Host Controller] 16:20:16,725 INFO [org.jboss.as.domain.controller] (Host Controller Service Threads - 28) WFLYHC0019: Registered remote slave host "myServerA", JBoss EuroAP 7.4.1.GA (WildFly 15.0.4.Final-redhat-00001)
Przegląd konsoli
Wynikiem powyższych prac jest dostęp do wszystkich Host Controllerów, jakie podepniemy pod Domain Controller z poziomu jego graficznego interfejsu (adres 127.0.0.1:10990
):
oraz JBoss CLI:
Dzięki temu w skuteczny i wygodny sposób mamy możliwość zarządzania całą naszą infrastrukturą z poziomu Domain Controller
. W naszym przykładzie użyliśmy tylko jednego Host Controller
, ale oczywiście do naszego Domain Controller
możemy podpiąć dowolną ich ilość, a przykładowa i bardzo uproszczona struktura może wyglądać następująco:
Podsumowanie
Jak widać na powyższym przykładzie, uruchomienie oraz podłączenie Host Controller
do Domain Controller
nie wymaga przekopywania się przez tony konfiguracji. Serwer aplikacji EuroAP zawiera szereg domyślnych plików konfiguracyjnych, które pomogą nam w skuteczny sposób skonfigurować naszą infrastrukturę.