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.