Запуск и остановка Tomcat через SSH на удаленном сервере

#ubuntu #ssh #gitlab-ci #tomcat9

#ubuntu #ssh #gitlab-ci #tomcat9

Вопрос:

У меня есть веб-сервер Tomcat, работающий на компьютере с Ubuntu. Как я могу перезапустить сервер через SSH из gitlab-ci?

Я развертываю различные файлы war amp; jar на сервере через ssh на gitlab-ci, и в некоторых случаях мне необходимо перезапустить сервер Tomcat.

Я попытался использовать команду tomcatctl:

 > ssh user@remote_ip tomcatctl stop
> bash: tomcatctl: command not found

> ssh user@remote_ip bash "tomcatctl stop"
> bash: tomcatctl: No such file or directory
  

Я также попытался написать сценарий оболочки и вызвать его через ssh:

 #!/bin/bash
tomcatctl stop
  
 > ssh user@remote_ip './stopTomcat.sh'
> ./stopTomcat.sh: line 2: tomcatctl: command not found
  

Похоже, что он выполняет удаленный скрипт на стороне клиента вместо удаленного сервера.
Когда я открываю терминал на сервере, все команды и скрипт работают правильно.

Ответ №1:

В основном это зависит от того, как установлен ваш tomcat и какая у него версия.

Следуя этой странице, вы можете установить tomcat 9 и настроить службу с systemd.

В gitlab-ci.yml просто остановите службу удаленно с помощью :

 stop_tomcat_job:
  script:
    - ssh tomcat@${SERVER} "sudo systemctl stop tomcat" > /dev/null 2>amp;1