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.