#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