Hi Soniya,

Cool, I will implement this one and let you know. Thank you very much!!

On Wednesday, December 20, 2017 at 3:15:53 AM UTC-8, Soniya panwar wrote:
>
> Hello Love,
>
> You cannot implement this scenario using Notify-Handler. You will have to 
> use the WHEN condition (Implementation shown in below playbook).
>
>
> One of the property of Handlers is that they get fired only if there is a 
> change in state of the task which is triggering the notification (Notify 
> Statement). 
> In your use-case there are 2 scenarios:
>
> *Scenario-1: *The destination maven repo does not exist and is created by 
> the File module. In this case there is a change in state of task which 
> triggers the Notification to "maven repo created" handler. Hence the 
> handler will execute and the files would get copied.
>
>  
>
> *Scenario-2:  *The destination maven repo already exists and File module 
> does nothing that results in the change of state of the task. Hence when 
> the notification reaches the Handler it does nothing and files are not 
> copied. 
>
>  
>
> Since this is a valid effect produced by the Handler hence there were no 
> error/alerts thrown during the playbook execution. 
>
>  
>
> *Correct playbook: *
>
> ---
>
> - hosts: test
>
>    remote_user: deploy
>
>    become: yes
>
>    become_method: sudo
>
>    connection: ssh
>
>    gather_facts: yes
>
>  
>
>    tasks:
>
>     - name: Create maven if not exist
>
>       file:
>
>         path: /opt/dtv/apache-maven-3.5.0/.m2/repository
>
>         state: directory
>
>         owner: root
>
>         group: root
>
>         mode: 0755
>
>     - name: check if maven repo exists on destination server
>
>       stat: path=/opt/dtv/apache-maven-3.5.0/.m2/repository
>
>       register: stat_result
>
>     - debug: var=stat_result
>
>     - name: copy files from source to destination
>
>       copy:
>
>        src: "{{ item.src }}"
>
>        dest: "{{ item.dest }}"
>
>        mode: "{{ item.mode }}"
>
>       with_items:
>
>        - { src: '/home/psk/settings.xml',dest: 
> '/opt/dtv/apache-maven-3.5.0/.m2/repository/',mode: '0755'}
>
>        - { src: '/etc/ansible/roles/common/files/settings.xml' , dest: 
> '/opt/dtv/apache-maven-3.5.0/conf/' , mode: '0644'}
>
>        - { src: '/etc/ansible/roles/common/files/archetype-catalog.xml' , 
> dest: '/opt/dtv/apache-maven-3.5.0/.m2/repository/' , mode: '0644'}
>
>       when: stat_result.stat.exists == True
>
>
> Thanks
>
> Soniya
>
> On Friday, December 8, 2017 at 3:24:58 AM UTC+5:30, Love wrote:
>>
>> Hello Soniya,
>>
>> Sent reply to only you as verbose output was too huge, please send me 
>> alone your email if you haven't received it so I can send you as an 
>> attachment.
>>
>> On Thursday, December 7, 2017 at 12:50:25 AM UTC-8, Soniya panwar wrote:
>>>
>>> Hello Love,
>>>
>>>
>>> It will be a great help if you can share the screenshot of your 
>>> playbook’s output as well as the screenshot of source and destination.
>>>
>>> The above playbook is working perfectly fine in our environment.
>>>
>>>  
>>>
>>> Thanks 
>>>
>>> Soniya
>>>
>>> On Friday, December 1, 2017 at 6:53:51 PM UTC+5:30, Love wrote:
>>>>
>>>> Hello Soniya,
>>>>
>>>> Thanks for your input, I see code executed successfully without errors 
>>>> but files were not copied to desired destinations. 
>>>>
>>>>
>>>> On Monday, November 27, 2017 at 8:51:44 PM UTC-8, Soniya panwar wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> You may use below code to perform many to many copy. You may use a 
>>>>> when condition to ensure that copy task takes place only when the 
>>>>> directory 
>>>>> is sucessfully created. In case of directory creation getting failed, the 
>>>>>
>>>>> copy task would not be performed. 
>>>>>
>>>>> Below is the detailed playbook:
>>>>> 1. create the directory 
>>>>> 2. check if maven repo directory exists on destination server
>>>>> 3. copy files from source to destination once the creation is 
>>>>> successful
>>>>>
>>>>>
>>>>> --- # Deploy EP7.0 on desired servers
>>>>>  - hosts: test
>>>>>    remote_user: deploy
>>>>>    become: yes
>>>>>    become_method: sudo
>>>>>    connection: ssh
>>>>>    gather_facts: yes
>>>>>    tasks:
>>>>>     - name: Create maven if not exist
>>>>>       file:
>>>>>         path: /opt/dtv/apache-maven-3.5.0/.m2/repository
>>>>>         state: directory
>>>>>         owner: root
>>>>>         group: root
>>>>>         mode: 0755
>>>>>     - name: check if maven repo exists on destination server
>>>>>       stat: path=/opt/dtv/apache-maven-3.5.0/.m2/repository
>>>>>       register: stat_result
>>>>>     - debug: var=stat_result
>>>>>     - name: copy files from source to destination
>>>>>       copy:
>>>>>        src: "{{ item.src }}"
>>>>>        dest: "{{ item.dest }}"
>>>>>        mode: "{{ item.mode }}"
>>>>>       with_items:
>>>>>        - { src: '/home/psk/settings.xml',dest: 
>>>>> '/opt/dtv/apache-maven-3.5.0/.m2/repository/',mode: '0755'}
>>>>>        - { src: '/etc/ansible/roles/common/files/settings.xml' , dest: 
>>>>> '/opt/dtv/apache-maven-3.5.0/conf/' , mode: '0644'}
>>>>>        - { src: 
>>>>> '/etc/ansible/roles/common/files/archetype-catalog.xml' , dest: 
>>>>> '/opt/dtv/apache-maven-3.5.0/.m2/repository/' , mode: '0644'}
>>>>>       when: stat_result.stat.exists == True
>>>>>
>>>>>
>>>>>
>>>>> *Output:-*
>>>>>
>>>>> TASK [maven repo created] 
>>>>> **********************************************************************************************************************************************
>>>>> ok: [host1] => (item={u'dest': 
>>>>> u'/opt/dtv/apache-maven-3.5.0/.m2/repository/', u'src': 
>>>>> u'/home/psk/settings.xml', u'mode': u'0755'})
>>>>> ok: [host1] => (item={u'dest': u'/opt/dtv/apache-maven-3.5.0/conf/', 
>>>>> u'src': u'/etc/ansible/roles/common/files/settings.xml', u'mode': 
>>>>> u'0644'})
>>>>> ok: [host1] => (item={u'dest': 
>>>>> u'/opt/dtv/apache-maven-3.5.0/.m2/repository/', u'src': 
>>>>> u'/etc/ansible/roles/common/files/archetype-catalog.xml', u'mode': 
>>>>> u'0644'})
>>>>>
>>>>> PLAY RECAP 
>>>>> *************************************************************************************************************************************************************
>>>>> host1                      : ok=5    changed=0    unreachable=0    
>>>>> failed=0
>>>>>
>>>>>
>>>>> Thanks 
>>>>> Soniya
>>>>>
>>>>>
>>>>> On Thursday, November 23, 2017 at 7:52:38 PM UTC+5:30, Love wrote:
>>>>>>
>>>>>> Hello Soniya,
>>>>>>
>>>>>> Yes,
>>>>>>
>>>>>> First I need to check if the directory exists or NOT & create it, 
>>>>>> works perfect!!
>>>>>> Second: After the above directory is created, I need to copy 3 
>>>>>> different files from 3 different sources to 2 destinations. In other 
>>>>>> words 
>>>>>> many to many copy is NOT working for me. 
>>>>>>
>>>>>> Please let me know if its still not clear?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Monday, November 13, 2017 at 9:33:09 PM UTC-8, Soniya panwar wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hello,
>>>>>>> Can you please elaborate your tasks more? 
>>>>>>> 1. In first task: you are checking if the file is exist on 
>>>>>>> destination server, and if not exist you will create new directory?
>>>>>>> 2. In second task: you are saying maven repo created but in this 
>>>>>>> task you are coping your files src to destination.
>>>>>>>
>>>>>>> if you can elaborate what is your scenario and why are you using 
>>>>>>> handler here, that will be a great help.
>>>>>>>
>>>>>>> thanks
>>>>>>> Soniya
>>>>>>>
>>>>>>>
>>>>>>> On Sunday, November 12, 2017 at 1:13:02 PM UTC+5:30, Love wrote:
>>>>>>>>
>>>>>>>> We need to be able to copy/push multiple files from multiple 
>>>>>>>> sources to multiple destinations on destination servers, I'm having 
>>>>>>>> trouble 
>>>>>>>> with below code, can anyone suggest the right syntax to update code? 
>>>>>>>>
>>>>>>>> I have 3 different files and destination is different for all of 
>>>>>>>> them and need this across my inventory, from a syntax standpoint I do 
>>>>>>>> not 
>>>>>>>> have any issues however, it does not push those files to destination 
>>>>>>>> servers.
>>>>>>>>
>>>>>>>>
>>>>>>>> --- # Deploy EP7.0 on desired servers
>>>>>>>>  - hosts: test
>>>>>>>>    remote_user: deploy
>>>>>>>>    become: yes
>>>>>>>>    become_method: sudo
>>>>>>>>    connection: ssh
>>>>>>>>    gather_facts: yes
>>>>>>>>
>>>>>>>>    tasks:
>>>>>>>>
>>>>>>>>     - name: check if maven repo exists on destination server
>>>>>>>>       file:
>>>>>>>>         path: /opt/dtv/apache-maven-3.5.0/.m2/repository
>>>>>>>>         state: directory
>>>>>>>>         owner: root
>>>>>>>>         group: root
>>>>>>>>         mode: 0755
>>>>>>>>       notify: maven repo created
>>>>>>>>
>>>>>>>>    handlers:
>>>>>>>>
>>>>>>>>     - name: maven repo created
>>>>>>>>       copy:
>>>>>>>>        src: "{{ item.src }}"
>>>>>>>>        dest: "{{ item.dest }}"
>>>>>>>>        mode: "{{ item.mode }}"
>>>>>>>>       with_items:
>>>>>>>>        - { src: '/home/psk/settings.xml',dest: 
>>>>>>>> '/opt/dtv/apache-maven-3.5.0/.m2/repository/',mode: '0755'}
>>>>>>>>        - "{ src: '/etc/ansible/roles/common/files/settings.xml' , 
>>>>>>>> dest: '/opt/dtv/apache-maven-3.5.0/conf/' , mode: '0755'}"
>>>>>>>>        - "{ src: 
>>>>>>>> '/etc/ansible/roles/common/files/archetype-catalog.xml' , dest: 
>>>>>>>> '/opt/dtv/apache-maven-3.5.0/.m2/repository/' , mode: '0755'}"
>>>>>>>>
>>>>>>>>     - debug: var=result
>>>>>>>>
>>>>>>>>

-- 
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/1767e240-28cf-4507-b103-7aa78d8610cc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to