Работя върху внедряването на микрослужби с ansible-playbook точно сега. И всички микрослужби използват java -jar
команда за разгръщане. Точно сега се опитвам да напиша книга за възпроизвеждане на ansible, за да открия и убия зависимия java-процес, преди да инсталира друг.
Аз изтичам на идеи тук. Мислех си за създаване на скрипт в init.d за java deamon.
Изход за ps -ef | grep java
корен 28330 1 1 13:52? 00:00:56 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / dal-core / config /opt/app/microservices/deploy/dal-core/enrollment-vehicle-dal-core-0.0.1-SNAPSHOT.jar
корен 29143 1 2 14:22? 00:00:49 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / dal-core / конфиг /opt/app/microservices/deploy/dal-core/enrollment-vehicle-listener-0.0.1-SNAPSHOT.jar
корен 29879 1 2 14:23? 00:00:48 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / dal-core / конфиг /opt/app/microservices/deploy/dal-core/enrollment-account-dal-core-0.0.1-SNAPSHOT.jar
корен 31093 1 3 14:28? 00:01:04 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / listener / конфиг /opt/app/microservices/deploy/listener/enrollment-account-listener-0.0.1-SNAPSHOT.jar
asadmin 31208 18879 0 14:57 pts / 1 00:00:00 grep - цвят = автоматично java
В горния сценарий, Ако се случи отново да се разгърне регистрация-акаунт-dal-core отново, трябва да убия enrollment-account-listener (pid: 31093) и след това да влезе в сметката-dal-core (pid: 29879).
Имам един плейбек за всички микрослужби, така че няма да мога да го опиша.
Отговори:
0 за отговор № 1Не съм сигурен, но се надявам pattern
параметър в service
модул ще реши проблема ви. Можете да намерите документация тук, Мисля, че вашата задача Ansible ще изглежда като този код:
- name: Killing enrollment-account-listener
service:
name: enrollment-account-listener
state: stopped
pattern: enrollment-account-listener
Документацията казва, ако услугата с дадено име не отговаря на командата за статуса на услугата, след това намерете pattern
в изхода на командата ps. Ако низът е намерен, услугата ще се счита за изпълнена.
Ако няма да работи, все още можете да използвате command
или shell
модул за намиране на решение на този проблем.