service name=custom.service1 state=present ???

Hello

I have a bunch of custom services linked to a service aka jbossas

eg.

chkconfig --list | grep jboss
jboss.jvm1 0:off 1:off 2:off 3:off 4:off 5:off 6:off
jboss.jvm2 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Is there a way with Ansilbe to check for the existence of a service ie. jboss.jvm[1-8] if conditional do X

I have tried with nested_loops but this looks seems extremely ineffeciant to connect and check for each of the possible 48 services for each node in ansible.

ideally a state=present in the service module would be great to use in a scnearios where you need to query a bunch of nodes to find a particular service and aka, patch or change a config based on its presence

Example

Playbook

Hi Marc,

I would recommend writing a custom fact to deploy on each system, which could return a list of the services installed on that system. Unfortunately, you’re still going to have to pre-define each handler, as they cannot be defined in a loop themselves (as you have it in your pseudo code).

See the documentation here on writing custom (local) facts: http://docs.ansible.com/playbooks_variables.html#local-facts-facts-d

Alternatively, you could use the stat module to determine if the init file for each service name is present, and then use that as the basis for your tests/loops. The caveat regarding the handlers still applies, however.

Hope that helps!

James

That is very helpful thanks for the direction.