James

That is very helpful thanks for the direction. 

On Thursday, October 23, 2014 8:41:14 AM UTC-7, James Cammarata wrote:
>
> 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!
>
> On Tue, Oct 21, 2014 at 6:46 AM, MarcAnthony <[email protected] 
> <javascript:>> wrote:
>
>>
>> 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
>>
>> ---
>> - hosts: all
>>
>>   tasks:
>>
>> #    - shell: echo "nested test a={{ item[0] }} b={{ item[1] }} c={{ 
>> item[2] }}"
>>     - shell: chkconfig --list {{ item[0] }}.{{ item[1] }}{{ item[2] }} >> 
>> /tmp/cmd.out
>>       with_nested:
>>         - [ 'jboss' ]
>>         - [ 'jvm', 'wsas', 'tas', 'las', 'esas', 'scas']
>>         - [ 1, 2, 3, 4, 5 ,6, 7, 8 ]
>>       register: cmd_result
>>       failed_when: "'error' in cmd_result.stderr"
>>       ignore_errors: yes
>>
>>  (Psudeo)
>>
>>     When match
>>     Template: src=/files/config/appserver.conf.j2 
>> dest=/etc/sysconfig/service.{{item}}.config 
>>      notifiy: restart {{ item[0] }}.{{ item[1] }}{{ item[2] }}
>>
>>     Handler: 
>>        - name=restart {{ item[0] }}.{{ item[1] }}{{ item[2] }}
>>        - service: name={{ item[0] }}.{{ item[1] }}{{ item[2] }} 
>> state=restarted
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/f2770d98-df6d-436a-ace2-5f14232171b6%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/f2770d98-df6d-436a-ace2-5f14232171b6%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/cb32a4fc-bf43-4a1c-8c29-d11ec5ca2b5c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to