Instalace PMC BE
Instalace služby¶
Instalace JDK a mvn¶
info
Je doporučeno nainstalovat jdk namísto jre kvůli příkazu jstack (zachycení thread dumpu) - to se hodí v případě řešení problémů s během PMC a je to využito v konfiguraci služby (viz níže).
Vytvoření uživatele PMC¶
- Pod tímto uživatelem se bude spouštět proces PMC.
- Tento uživatel bude vytvářet nové buildy
Vytvoření adresářové struktury¶
Vytvoření systemd service¶
Tento soubor definuje službu PMC
/etc/systemd/system/pmc.service
[Unit]
Description = PMC Server
After = network.target
[Service]
Type = simple
Restart=on-failure
RestartSec=5s
# (4)!
User = pmc
Group = pmc
# (5)!
WorkingDirectory= /opt/pmc
# (3)!
ExecStart = /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar /opt/pmc/pmc.jar --spring.profiles.active=gclive,sip -Duser.country=CZ -Duser.language=cs
# (2)!
ExecStop= /bin/bash -c 'jstack $MAINPID > /opt/pmc/backup_files/stacks/stack_$(date +"%%Y%%m%%d-%%H%%M%%S").log && /bin/kill "$MAINPID"'
# (1)!
StandardOutput=null
StandardError=inherit
[Install]
WantedBy = multi-user.target
- Výstup ze služby se nikam neukládá. Logování je nastaveno v aplikaci.
- Manuální vypnutí uloží informace o běhu aplikace. To z toho důvodu, že pokud byla aplikace restartována kvůli chybě, bude více informací k analýze.
- Pokud se nepoužívá asterisk, odstranit z profilů sip.
- Proces se spouští pod uživatelem pmc
- Proces se spouští z adresáře /opt/pmc
Vytvoření backup script pro jenkinse¶
script backup_pmc.sh Vytvoří lokální zálohu služby PMC. V případě, že bude s novým buildem problém, je možné se k této záloze vrátit.
/opt/pmc/backup_pmc.sh
TIMEMARK=`date +%Y%m%d-%H%M%S`
mkdir /opt/pmc/backup_files/{logs/${TIMEMARK},jars/${TIMEMARK}}
mv /opt/pmc/pmc*.err /opt/pmc/backup_files/logs/${TIMEMARK}/ || echo "error copying .err files"
mv /opt/pmc/pmc*.out /opt/pmc/backup_files/logs/${TIMEMARK}/ || echo "error copying .out files"
mv /opt/pmc/*.log /opt/pmc/backup_files/logs/${TIMEMARK}/ || echo "error copying .log files"
mv /opt/pmc/pmc*.gz /opt/pmc/backup_files/logs/${TIMEMARK}/ || echo "error copying .gz files"
mv /opt/pmc/pmc*.jar /opt/pmc/backup_files/jars/${TIMEMARK}/ || echo "error copying .jar files"
Nastavení oprávnění¶
sudo chown -R pmc:pmc /opt/pmc
sudo find /opt/pmc/ -type d -exec chmod 775 {} \;
sudo find /opt/pmc/ -type f -exec chmod 664 {} \;
sudo chmod +x /opt/pmc/*.sh
sudo usermod -aG pmc jenkins # (1)!
sudo visudo # (2)!
- Uživatele jenkins přidáváme do skupiny PMC, aby mohl zapisovat do adresáře /opt/pmc
- Je třeba umožnit skupině pmc ovládat pmc service. Do sudoers souboru vložíme následující řádky
Nastavení automatického spuštění služby¶
Příkaz níže spůsobí to, že se služba pmc bude spouštět po startu serveru.