Thanks Jordan! That code worked a treat - really appreciate your assistance 
and detailed explanations below.

On Tuesday, May 15, 2018 at 12:58:42 PM UTC+12, java_cat33 wrote:
>
> Firstly - sorry for the noob question.
>
> I've written a Powershell script that is run from a play that returns in 
> json the name of a zip file.
>
> ****Output from Powershell****
>
> {
>     "Name":  "latest-ansible v0.1.zip"
> }
>
> ***playbook***
> ---
> - hosts: all
>   vars:
>     filename: none
>   tasks:
>   - name: Install IIS Web-Server with sub features and management tools
>     win_feature:
>       name: Web-Server
>       state: present
>       include_sub_features: yes
>       include_management_tools: yes
>     register: win_feature
>
>   - name: reboot if installing Web-Server feature requires it
>     win_reboot:
>     when: win_feature.reboot_required
>
>   - name: Run Powershell script and return json including zip file name
>     script: files/script.ps1
>     register: result
>
>   - set_fact: filename={{result.stdout_lines}}
>   - debug: var=result
>   - debug: var=filename
>
>   - name: copy files
>     win_copy:
>       src: C:\Temp\"{{ filename }}"
>       dest: C:\Inetpub
>
>
> Output snippet from running the play is as per below....
>
> TASK [set_fact] 
> ***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/test1/test.yml:22
>  [WARNING]: ansible_winrm_cert_validation unsupported by pywinrm (is an 
> up-to-date version of pywinrm installed?)
>
> ok: [servername] => {
>     "ansible_facts": {
>         "filename": [
>             "{",
>             "    \"Name\":  \"latest-ansible v0.1.zip\"",
>             "}"
>         ]
>     },
>     "changed": false
> }
>
> TASK [debug] 
> ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/test1/test.yml:23
>  [WARNING]: ansible_winrm_cert_validation unsupported by pywinrm (is an 
> up-to-date version of pywinrm installed?)
>
> ok: [servername] => {
>     "result": {
>         "changed": true,
>         "failed": false,
>         "rc": 0,
>         "stderr": "",
>         "stdout": "{\r\n    \"Name\":  \"latest-ansible 
> v0.1.zip\"\r\n}\r\n",
>         "stdout_lines": [
>             "{",
>             "    \"Name\":  \"latest-ansible v0.1.zip\"",
>             "}"
>         ]
>     }
> }
>
> TASK [debug] 
> ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/test1/test.yml:24
>  [WARNING]: ansible_winrm_cert_validation unsupported by pywinrm (is an 
> up-to-date version of pywinrm installed?)
>
> ok: [servername] => {
>     "filename": [
>         "{",
>         "    \"Name\":  \"latest-ansible v0.1.zip\"",
>         "}"
>     ]
> }
>
> TASK [copy files] 
> *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/test1/test.yml:26
>  [WARNING]: ansible_winrm_cert_validation unsupported by pywinrm (is an 
> up-to-date version of pywinrm installed?)
>
> The full traceback is:
> Traceback (most recent call last):
>   File 
> "/usr/lib/python2.7/dist-packages/ansible/plugins/action/win_copy.py", line 
> 398, in run
>     source = self._find_needle('files', source)
>   File 
> "/usr/lib/python2.7/dist-packages/ansible/plugins/action/__init__.py", line 
> 999, in _find_needle
>     return self._loader.path_dwim_relative_stack(path_stack, dirname, 
> needle)
>   File "/usr/lib/python2.7/dist-packages/ansible/parsing/dataloader.py", 
> line 322, in path_dwim_relative_stack
>     raise AnsibleFileNotFound(file_name=source, paths=[to_text(p) for p in 
> search])
> AnsibleFileNotFound: Could not find or access 'C:\Temp\"[u'{', u'    
> "Name":  "latest-ansible v0.1.zip"', u'}']"'
> Searched in:
>         /etc/ansible/playbooks/test1/files/C:\Temp\"[u'{', u'    "Name":  
> "latest-ansible v0.1.zip"', u'}']"
>         /etc/ansible/playbooks/test1/C:\Temp\"[u'{', u'    "Name":  
> "latest-ansible v0.1.zip"', u'}']"
>         /etc/ansible/playbooks/test1/files/C:\Temp\"[u'{', u'    "Name":  
> "latest-ansible v0.1.zip"', u'}']"
>         /etc/ansible/playbooks/test1/C:\Temp\"[u'{', u'    "Name":  
> "latest-ansible v0.1.zip"', u'}']"
>
> fatal: [servername]: FAILED! => {
>     "changed": false,
>     "dest": "C:\\Inetpub",
>     "msg": "Could not find or access 'C:\\Temp\\\"[u'{', u'    \"Name\":  
> \"latest-ansible v0.1.zip\"', u'}']\"'\nSearched 
> in:\n\t/etc/ansible/playbooks/test1/files/C:\\Temp\\\"[u'{', u'    
> \"Name\":  \"latest-ansible v0.1.zip\"', 
> u'}']\"\n\t/etc/ansible/playbooks/test1/C:\\Temp\\\"[u'{', u'    \"Name\":  
> \"latest-ansible v0.1.zip\"', 
> u'}']\"\n\t/etc/ansible/playbooks/test1/files/C:\\Temp\\\"[u'{', u'    
> \"Name\":  \"latest-ansible v0.1.zip\"', 
> u'}']\"\n\t/etc/ansible/playbooks/test1/C:\\Temp\\\"[u'{', u'    \"Name\":  
> \"latest-ansible v0.1.zip\"', u'}']\"",
>     "src": "C:\\Temp\\\"[u'{', u'    \"Name\":  \"latest-ansible 
> v0.1.zip\"', u'}']\""
> }
>         to retry, use: --limit @/etc/ansible/playbooks/test1/test.retry
>
>
> What I am trying to do is copy the zip file to a different directory on 
> the same server, create a new folder with name captured in the value in the 
> json output of filename (excluding the .zip - I.E latest-ansible v0.1) and 
> then extract the contents to this new folder.
>
> What do I need to change in my playbook syntax to get this file copy to 
> work leveraging the value in the json output? After I've got this sorted I 
> can tackle the next hurdle :-)
>
> Thanks in advance!
>
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/56408c8b-2ee0-4fa6-852d-04c9f0d521d1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to