Hallo zusammen,
ich habe meine SystemD-Units für Teamcity nun vollendet und möchte diese gerne teilen, damit andere diese nicht extra vervollständige müssen.
Getestet ist das Ganze unter Ubuntu 18.04 .
Teamcity hat zwei Komponenten: Server und Agent. Ich habe lediglich einen Agenten mit auf dem Server, die SystemD-Unit für den Agenten kann aber auch auf eigenen, separaten Agenten genutzt werden.
Bei unten stehenden Configs müssen die Werte für „<TEAMCITY_HOME>“ und „<TEAMCITY_AGENT_HOME>“ ersetzt werden mit den Home-Verzeichnissen der jeweiligen Installationen.
Unit für den Server (/etc/systemd/system/teamcity-server.service):
[Unit]
Description=TeamCity Server
After=network.target[Install]
WantedBy=multi-user.target[Service]
Type=forking
RemainAfterExit=yes
User=teamcity
Group=users
SyslogIdentifier=teamcity_server
PIDFile=<TEAMCITY_HOME>/logs/teamcity.pid
RestartSec=5
Restart=on-failureExecStart=<TEAMCITY_HOME>/bin/teamcity-server.sh start
ExecStop=<TEAMCITY_HOME>/bin/teamcity-server.sh stop
Unit für den Agenten (/etc/systemd/system/teamcity-agent.service):
[Unit]
Description=TeamCity Agent
After=network.target[Install]
WantedBy=multi-user.target[Service]
ExecStart=<TEAMCITY_AGENT_HOME>/bin/agent.sh start
Type=forking
RemainAfterExit=yes
User=teamcity
Group=users
SyslogIdentifier=teamcity_agent
PrivateTmp=yes
PIDFile=<TEAMCITY_AGENT_HOME>/logs/buildAgent.pid
ExecStop=<TEAMCITY_AGENT_HOME>/bin/agent.sh stop
RestartSec=5
Restart=on-failure
Nach dem Anlegen der Dateien diese noch mittels:
systemctl enable teamcity-server
systemctl enable teamcity-agent
aktivieren.
Nun kann man über systemctl start teamcity-[server/agent] den jeweiligen Dienst starten und selbige werden beim Bootvorgang automatisch mit hoch gefahren.
Bisher musste ich dies manuell machen, basierend auf meinem Monitoring der Java-Prozesse und der UI-Verfügbarkeit. Dieses Monitoring habe ich immer noch (die SystemD – Unit verhindert ja keine sonstigen Fehler 😉 ).
Zum Monitoring des Systems werde ich noch einmal einen Separaten Beitrag machen, jetzt erstmal einen Follow-Up machen, da ähnlich meine Youtrack-Instanz angepasst wurde.
Bis dahin hoffe ich dem Einen oder Anderen mit diesem Beitrag geholfen zu haben.