Я использую 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
.