Jordan do you know how to strip the ".zip" off the file name? I've been 
looking at http://jinja.pocoo.org/docs/2.10/templates/#truncate but haven't 
cracked it yet.

On Tuesday, May 15, 2018 at 2:17:32 PM UTC+12, java_cat33 wrote:
>
> 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 [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/a4a203c6-39b2-4b41-b9b3-5b20072c1ab1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to