EuroAP jako usługa systemd

EuroAP jako usługa systemd

Platforma EuroAP może działać jako usługa na wszystkich wspieranych systemach operacyjnych. W tym artykule pokażemy, jak uruchomić EuroAP jako usługę systemd pod kontrolą systemu operacyjnego EuroLinux 8.

Platforma EuroAP może działać jako usługa na wszystkich wspieranych systemach operacyjnych. Poniższa demonstracja pokazuje, jak uruchomić EuroAP jako usługę systemd pod kontrolą systemu operacyjnego EuroLinux 8. Ponieważ EuroAP jest funkcjonalnie zgodne z Red Hat® JBoss® EAP, poradnik ten ma zastosowanie także w kontekście JBoss®.

Na początek pobieramy archiwum EuroAP z Portalu Klienta EuroLinux i wypakowujemy je do katalogu bieżącego:

unzip EuroAP*

Przenosimy wypakowany katalog do katalogu /opt:

sudo mv EuroAP-*/ /opt/EuroAP

Instalujemy wymaganą wersję OpenJDK:

sudo dnf install -y java-11-openjdk

Dodajemy użytkownika systemowego euroap i tworzymy mu hasło:

sudo useradd euroap && sudo passwd euroap

Nadajemy temu użytkownikowi uprawnienia właściciela katalogu /opt/EuroAP poleceniem:

chown -R euroap:euroap /opt/EuroAP

Tworzymy użytkownika aplikacji EuroAP z poziomu systemowego użytkownika euroap:

su euroap -c /opt/EuroAP/bin/add-user.sh

Przechodzimy do podkatalogu init.d projektu:

cd /opt/EuroAP/bin/init.d

i wykonujemy polecenie kopiujące plik konfiguracyjny i skrypt uruchomieniowy:

sudo cp *.sh euroap.sh && sudo cp *.conf euroap.conf

W pliku konfiguracyjnym euroap.conf odkomentowujmy i edytujemy zmienną JBOSS_HOME kierując ją na katalog /opt/EuroAP, a także zmienną JBOSS_USER przypisując jej użytkownika euroap. Dodatkowo odkomentowujmy zmienne JBOSS_MODE=standalone oraz JBOSS_CONFIG=standalone.xml i zapisujemy plik.

Wykonujemy automatyczną edycję zmiennej JBOSS_NAME w skrypcie uruchomieniowym:

sudo sed -i "s/JBOSS_NAME='.*'/JBOSS_NAME='euroap'/g" euroap.sh

Kopiujemy zmodyfikowany plik konfiguracji usługi do katalogu /etc/default:

sudo cp /opt/EuroAP/bin/init.d/euroap.conf /etc/default

Następnie kopiujemy skrypt uruchomieniowy do katalogu /etc/init.d/:

sudo cp /opt/EuroAP/bin/init.d/euroap.sh /etc/init.d

Nadajemy skryptowi uruchamiającemu usługę kontekst initrc_t SELinuxa:

sudo /sbin/restorecon -v /etc/rc.d/init.d/euroap.sh

Po wykonaniu polecenia powinna wyświetlić się informacja:

Relabeled /etc/rc.d/init.d/euroap.sh from unconfined_u:object_r:etc_t:s0 to unconfined_u:object_r:initrc_exec_t:s0

Następnie tworzymy plik euroap.service w katalogu /etc/systemd/system:

sudo vim /etc/systemd/system/euroap.service

i dodajemy mu następujące elementy:

[Unit]
    Description=EuroAP Systemctl script
    After=NetworkManager.service

[Service]
    Type=forking
    ExecStart=/etc/init.d/euroap.sh start
    ExecStop=/opt/EuroAP/bin/init.d/euroap.sh stop
    ExecReload=/opt/EuroAP/bin/init.d/euroap.sh restart
       
[Install]
    WantedBy=multi-user.target

Zapisujemy i zamykamy ten plik oraz przeładowujemy daemona systemd:

sudo systemctl daemon-reload

Teraz możemy uruchomić naszą nową usługę za pomocą standardowego polecenia:

sudo systemctl start euroap

Po kilkunastu sekundach należy sprawdzić, czy EuroAP hostuje swój panel administracyjny. W tym celu odwiedzamy stronę http://localhost:9990.

Status usługi możemy wyświetlić standardowym poleceniem systemd:

sudo systemctl status euroap

Poniżej przykładowy wynik tego polecenia:

● euroap.service - EuroAP Systemctl script
   Loaded: loaded (/etc/systemd/system/euroap.service; static; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-24 05:48:22 EST; 36min ago
  Process: 34267 ExecStart=/etc/init.d/euroap.sh start (code=exited, status=0/SUCCESS)
 Main PID: 34286 (standalone.sh)
    Tasks: 56 (limit: 23512)
   Memory: 329.3M
   CGroup: /system.slice/euroap.service
           ├─34286 /bin/sh /opt/EuroAP/bin/standalone.sh -c standalone.xml
           └─34405 java -D[Standalone] -server -Xlog:gc*:file=/opt/EuroAP/standalone/log/gc.log:time,uptimemillis:filecount=5,filesize=3M -Xms1303m -X>

Feb 24 05:48:18 el8 systemd[1]: Starting EuroAP Systemctl script...
Feb 24 05:48:18 el8 runuser[34284]: pam_unix(runuser:session): session opened for user euroap by (uid=0)
Feb 24 05:48:18 el8 runuser[34284]: pam_unix(runuser:session): session closed for user euroap
Feb 24 05:48:18 el8 euroap.sh[34267]: Starting euroap: /
Feb 24 05:48:22 el8 euroap.sh[34267]: [  OK  ]
Feb 24 05:48:22 el8 systemd[1]: Started EuroAP Systemctl script.

Usługę możemy zatrzymać standardowym poleceniem systemd:

sudo systemctl stop euroap

Uruchamianie usługi wraz ze startem systemu operacyjnego również możemy ustawić standardowym poleceniem systemd:

sudo systemctl enable euroap --now

Podsumowanie

Dzięki konfiguracji EuroAP jako usługi systemd możliwe jest łatwe zarządzanie zasobami aplikacji EuroAP, takimi jak pamięć operacyjna, procesor czy pamięć dyskowa. Usługa systemd zapewnia również nieprzerwane działanie aplikacji EuroAP po restarcie serwera. Systemd dostarcza narzędzia do łatwego zarządzania logami aplikacji oraz pozwala na kontrolowanie procesu aplikacji, w tym na monitorowanie jej stanu, zatrzymywanie, wznawianie i restartowanie. Jak widać, rozwiązanie to ma wiele zalet, które pozwalają na łatwe, wydajne i bezpieczne zarządzanie aplikacją EuroAP w środowisku serwerowym.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.