Estoy trabajando en la implementación de microservicios con Anible-Playbook ahora mismo. Y todos los microservicios se utilizan. java -jar
comando para desplegar. En este momento, estoy intentando escribir un libro de jugadas ansible para encontrar y eliminar el proceso java -jar dependiente antes de implementar otro.
Me estoy quedando sin ideas. Estaba pensando en crear un script en init.d para Java Deamon. Pero, si hago eso y detengo el servicio, detendré todos los procesos de Java que no quisiera.
Salida para ps -ef | grep java
raíz 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
raíz 29143 1 2 14:22? 00:00:49 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / dal-core / config /opt/app/microservices/deploy/dal-core/enrollment-vehicle-listener-0.0.1-SNAPSHOT.jar
raíz 29879 1 2 14:23? 00:00:48 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / dal-core / config /opt/app/microservices/deploy/dal-core/enrollment-account-dal-core-0.0.1-SNAPSHOT.jar
raíz 31093 1 3 14:28? 00:01:04 java -jar -DCONFIG_FOLDER = / opt / app / microservices / deploy / listener / config /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 --color = auto java
En el escenario anterior, si vuelvo a implementar la inscripción-cuenta-dal-core nuevamente, primero debo eliminar la inscripción-escucha-cuenta (pid: 31093) y luego la cuenta-cuenta-dal-core (pid: 29879).
Tengo un libro de jugadas para todos los microservicios, así que tampoco podré codificarlo.
Respuestas
0 para la respuesta № 1No estoy seguro, pero espero que pattern
parámetro en service
módulo resolverá su problema Puedes encontrar documentación aquí. Creo que tu tarea Ansible se verá como este código:
- name: Killing enrollment-account-listener
service:
name: enrollment-account-listener
state: stopped
pattern: enrollment-account-listener
La documentación dice que si el servicio con el nombre dado no responde al comando de estado del servicio, entonces busque pattern
en la salida del comando ps. Si se encuentra la cadena, se supondrá que el servicio se está ejecutando.
Si no funciona, todavía puedes usar command
o shell
Módulo para encontrar solución a este problema.