Процесс Tomcat прерывается / завершается после завершения Ansible - PullRequest
0 голосов
/ 19 сентября 2019

Я использую Ansible 2.8.4-1.el7 для автоматизации некоторых задач с серией экземпляров / серверов RedHat.

Я вхожу в экземпляры через SSH (используя «пароль без пароля») спользователь, который может запускать процессы как tomcat, но он не может sudo как таковой полностью.Серверы Tomcat имеют скрипт с некоторыми функциями для управления действиями start и stop ... и это то, что я хочу имитировать с помощью Ansible, но до сих пор всякий раз, когда я делаю: /some/path/tomcat9_dev/bin/tomcat9_dev start запускает сервер, но процесс завершается после того, как Ansible завершает выполнение.

Есть ли способ фактически выполнить этот сценарий и оставить сервер Tomcat запущенным после завершения Ansible?

Если я войду в системуСервер (ы) через SSH, выполнить сценарий и выйти, он работает отлично.Я также поместил время ожидания в сценарий запуска, выполнил его через Ansible и смог увидеть процесс Tomcat, протестировать веб-приложения и т. Д., Но опять же, после завершения Ansible, процесс завершается.


Я начал использовать модуль service следующим образом:

- name: Stop service
  systemd:
    state: stopped
    name: tomcat9_dev

- name: Start service
  systemd:
    enabled: yes
    state: started
    name: tomcat9_dev

... но это ничего не делает, он всегда истекает при запускесервер (хотя он и не останавливается при остановке, но на самом деле это тоже не останавливает ... Я запускал это несколько раз, когда сервер запущен и работает).Файл /some/path/tomcat9_dev/bin/tomcat9_dev.service выглядит следующим образом:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/some/path/tomcat9_dev/temp/tomcat.pid
Environment=CATALINA_HOME=/some/path/tomcat9_dev
Environment=CATALINA_BASE=/some/path/tomcat9_dev
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/some/path/tomcat9_dev/bin/tomcat9_dev start
ExecStop=/some/path/tomcat9_dev/bin/tomcat9_dev stop

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Я не совсем уверен, что запуск Tomcat через скрипт может помешать Ansible и модулю service.

1 Ответ

1 голос
/ 19 сентября 2019

Можете ли вы запустить либо оболочку service, либо systemctl напрямую, чтобы вручную запустить и остановить этот сервисный блок в системе, которую вы пытаетесь командовать / контролировать с помощью Ansible?Потому что это будет шаг 1.

Что такое /some/path/tomcat9_dev/bin/tomcat9_dev.service?потому что это важно с точки зрения systemd, и вы сделали daemon-reload после установки этого файла модуля?

Кроме того, скрипт, который находится в /some/path/tomcat9_dev/bin/tomcat9_dev, оставляет tomcat запущенным на переднем плане или на заднем плане?Опять же, потому что это важно для systemd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...