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.