Cool I just hit the StackOverflow again.
I used win_get_url to download, and then win_package to install. I am using
the updated powershell.ps1 script from 8759, but I have seen it without
that as well.
failed: [clone] => {"failed": true, "parsed": false}
invalid output was:
Process is terminated due to StackOverflowException.
FATAL: all hosts have already failed -- aborting
____________
< PLAY RECAP >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
to retry, use: --limit @/home/damon/slaves-svn-package.retry
clone : ok=2 changed=1 unreachable=0 failed=1
The only two files in the temp directory on the remote are the `arguments`
file and `powershell.ps1`. Here are the contents of the args file:
{"arguments": "ADDLOCAL=CLI", "creates": "C:\\Program Files\\TortoiseSVN",
"ensure": "present", "name": "TortoiseSVN-1.7.15", "path":
"E:\\.installs\\tortoise-1.7.msi", "product_id":
"{087D2CC7-C1FA-45EC-9FC1-B06CA4A073A0}"}
I'm going to try changing up the values a bit and see if it's bad arguments
going into it. Here is the playbook (currently), and I'm also going to try
rerunning with -vvvv
- name: get svn client - version 1.7
win_get_url:
url:
'http://sourceforge.net/projects/tortoisesvn/files/1.7.15/Application/Tor$
dest: 'E:\.installs\tortoise-1.7.msi'
- name: ensure svn is version 1.7
win_package:
path='E:\.installs\tortoise-1.7.msi'
name='TortoiseSVN-1.7.15'
product_id='{087D2CC7-C1FA-45EC-9FC1-B06CA4A073A0}'
creates='C:\Program Files\TortoiseSVN'
ensure=present
arguments="ADDLOCAL=CLI"
On Thursday, August 28, 2014 10:59:29 AM UTC-5, Damon Overboe wrote:
>
> I changed it to run win_get_url to download the package so I could rename
> the file (using 'dest').
>
> And then, I hit a nice System.OutOfMemoryException. This server isn't
> that beefy and it's wanting to run updates, so it could be that... but I'm
> going to try to grab the remote files anyway.
>
> I wasn't running -vvvv, here's what I saw:
>
> failed: [clone] => {"failed": true, "parsed": false}
> invalid output was: Exception of type 'System.OutOfMemoryException' was
> thrown.
> At
> C:\Users\dummy\AppData\Local\Temp\ansible-tmp-1409241114.17-71859971213315
> \win_package.ps1:1395 char:5
> + if ($testdscresult -eq $true)
> + ~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : OperationStopped: (:) [],
> OutOfMemoryException
> + FullyQualifiedErrorId : System.OutOfMemoryException
>
>
>
> FATAL: all hosts have already failed -- aborting
> ____________
> < PLAY RECAP >
> ------------
> \ ^__^
> \ (oo)\_______
> (__)\ )\/\
> ||----w |
> || ||
>
>
> to retry, use: --limit @/home/damon/slaves-svn-package.retry
>
> clone : ok=2 changed=1 unreachable=0 failed=1
>
>
>
>
> On Thursday, August 28, 2014 10:44:52 AM UTC-5, Damon Overboe wrote:
>>
>> OK I'm testing it out.
>>
>> First, I love that you can pass arguments. I have been automating the
>> Jenkins clients; I'm adding a specific version of SVN, and with the win_msi
>> installer, I couldn't figure out how to pass arguments to it so it would
>> install the Command Line Interface.
>>
>> With the win_package, that is super easy, so I was happy to see that!
>>
>>
>> But I ran into my first situation; if you give it a URL and the download
>> file doesn't include the extension, it will fail to install. Test out this
>> url:
>>
>>
>> http://sourceforge.net/projects/tortoisesvn/files/1.7.15/Application/TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi/download
>>
>> Running a plain wget, `wget
>> http://sourceforge.net/projects/tortoisesvn/files/1.7.15/Application/TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi/download`
>>
>> <http://sourceforge.net/projects/tortoisesvn/files/1.7.15/Application/TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi/download>
>>
>> will download the installer as "download" so I'm assuming the scripts are
>> doing the same.
>>
>> So, it probably needs an option to specify the output file, much like you
>> would with `wget -o` or `wget --output-file`.
>>
>>
>>
>>
>>
>>
>>
>> On Tuesday, August 26, 2014 6:25:56 PM UTC-5, Damon Overboe wrote:
>>>
>>> Awesome I'll give that as shot.
>>>
>>> The biggest thing I wanted to know was how to catch the output so I can
>>> at least try to debug it or ask for help, so that'll be huge.
>>>
>>> I'm off for the night tonight but I'll be testing out win_package
>>> tomorrow for sure. I'll let you know how it goes.
>>>
>>> On Tuesday, August 26, 2014 5:53:24 PM UTC-5, Trond Hindenes wrote:
>>>>
>>>> Nice,
>>>> So, Chris just tipped me about this ansible.cfg setting:
>>>> [defaults]
>>>> keep_remote_files = 1
>>>>
>>>> Stick that in your /ansible/etc/ansible.cfg and re-run your playbook
>>>> with -vvv
>>>>
>>>> All those temp paths Ansible uses for powershell files will now be left
>>>> on your windows system. Each folder basically has a script file (the
>>>> module) and an arguments file. That should do wonders for debugging
>>>> windows
>>>> modules (it would still require some PowerShell proficiency tho)
>>>>
>>>>
>>>>
>>>>
>>>> On Wednesday, August 27, 2014 12:48:36 AM UTC+2, Damon Overboe wrote:
>>>>
>>>>> There it is, finally!!!
>>>>>
>>>>> This is still using the win_msi, I'll switch to the win_package now.
>>>>>
>>>>> I'm not sure why but I just wasn't going to be happy until I broke it.
>>>>>
>>>>>
>>>>>
>>>>> changed: [node1.domain.com]
>>>>> Traceback (most recent call last):
>>>>> File
>>>>> "/home/damon/src/ansible/lib/ansible/runner/connection_plugins/winrm.py"
>>>>> , line 149, in exec_command
>>>>> result = self._winrm_exec(cmd_parts[0], cmd_parts[1:], from_exec=
>>>>> True)
>>>>> File
>>>>> "/home/damon/src/ansible/lib/ansible/runner/connection_plugins/winrm.py"
>>>>> , line 118, in _winrm_exec
>>>>> response = Response(self.protocol.get_command_output(self.shell_id
>>>>> , command_id))
>>>>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py",
>>>>> line 277, in get_command_output
>>>>> self._raw_get_command_output(shell_id, command_id)
>>>>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py",
>>>>> line 293, in _raw_get_command_output
>>>>> rs = self.send_message(xmltodict.unparse(rq))
>>>>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py",
>>>>> line 173, in send_message
>>>>> return self.transport.send_message(message)
>>>>> File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py",
>>>>> line 90, in send_message
>>>>> raise WinRMTransportError(error_message)
>>>>> WinRMTransportError: Bad HTTP response returned from server. Code 500
>>>>> fatal: [node3.domain.com] => failed to exec cmd PowerShell -NoProfile
>>>>> -NonInteractive -EncodedCommand
>>>>> KABOAGUAdwAtAEkAdABlAG0AIAAtAFQAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQBuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC0AdABtAHAALQAxADQAMAA5ADAAOQAyADkAOAA2AC4ANgAtADIANwA2ADMAMAA3ADAAMAA2ADUAMgA0ADEAOAAiACkALgBGAHUAbABsAE4AYQBtAGUAIAB8ACAAVwByAGkAdABlAC0ASABvAHMAdAAgAC0AUwBlAHAAYQByAGEAdABvAHIAIAAnACcAOwA
>>>>> =
>>>>> _________________________________
>>>>> < TASK: ensure svn is version 1.7 >
>>>>> ---------------------------------
>>>>> \ ^__^
>>>>> \ (oo)\_______
>>>>> (__)\ )\/\
>>>>> ||----w |
>>>>> || ||
>>>>>
>>>>>
>>>>> failed: [node1.domain.com] => {"failed": true, "parsed": false}
>>>>> invalid output was:
>>>>> Process is terminated due to StackOverflowException.
>>>>>
>>>>>
>>>>> FATAL: all hosts have already failed -- aborting
>>>>> ____________
>>>>> < PLAY RECAP >
>>>>> ------------
>>>>> \ ^__^
>>>>> \ (oo)\_______
>>>>> (__)\ )\/\
>>>>> ||----w |
>>>>> || ||
>>>>>
>>>>>
>>>>> to retry, use: --limit @/home/damon/slaves-svn-cleanup.
>>>>> retry
>>>>>
>>>>> node1.domain.com : ok=1 changed=1 unreachable=0 failed=1
>>>>>
>>>>> node3.domain.com : ok=0 changed=0 unreachable=1 failed=0
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, August 26, 2014 5:40:07 PM UTC-5, Trond Hindenes wrote:
>>>>>>
>>>>>> This thread is fine. I haven't submitted a PR for win_package just
>>>>>> yet.
>>>>>>
>>>>>> On Wednesday, August 27, 2014 12:36:19 AM UTC+2, Damon Overboe wrote:
>>>>>>>
>>>>>>> That's exactly what I did to get your changes into the mainline, so
>>>>>>> I'm doing that again.
>>>>>>>
>>>>>>> You want me to post feedback (if I have any) in this thread or on
>>>>>>> the pull request?
>>>>>>>
>>>>>>> On Tuesday, August 26, 2014 5:25:46 PM UTC-5, Trond Hindenes wrote:
>>>>>>>>
>>>>>>>> Me too. I would just grab the file manually and stick it in your on
>>>>>>>> fork for now:
>>>>>>>>
>>>>>>>> https://raw.githubusercontent.com/trondhindenes/ansible/win_setup_json_depth/lib/ansible/module_utils/powershell.ps1
>>>>>>>>
>>>>>>>> My repo has a branch for each change/PR i've submitted, so you're
>>>>>>>> probably better off forking the original ansible code and just come up
>>>>>>>> with
>>>>>>>> your own way of managing the various changes you put in it. I guess I
>>>>>>>> should try and rebase everything back into my devel branch, but it's
>>>>>>>> that's
>>>>>>>> not the case right now.
>>>>>>>>
>>>>>>>> On Wednesday, August 27, 2014 12:20:37 AM UTC+2, Damon Overboe
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I'm still somewhat of a git noob;
>>>>>>>>>
>>>>>>>>> I've cloned your repo, but I'm not sure how to get the pull
>>>>>>>>> request from 8759 into that clone...
>>>>>>>>>
>>>>>>>>> I'm guessing there's a command to merge, any pointers?
>>>>>>>>>
>>>>>>>>> On Tuesday, August 26, 2014 5:15:45 PM UTC-5, Trond Hindenes wrote:
>>>>>>>>>>
>>>>>>>>>> Here you go sir:
>>>>>>>>>> https://github.com/trondhindenes/ansible/tree/win_package
>>>>>>>>>>
>>>>>>>>>> Note that I'm using the updated helper functions from the main
>>>>>>>>>> powershell.ps1 script, so you'll need to grab that as well. You can
>>>>>>>>>> grab if
>>>>>>>>>> from this PR:
>>>>>>>>>> https://github.com/ansible/ansible/pull/8759 (the powershell.ps1
>>>>>>>>>> file goes in /lib/ansible/module_utils in your ansible directory
>>>>>>>>>> structure)
>>>>>>>>>>
>>>>>>>>>> On Wednesday, August 27, 2014 12:07:09 AM UTC+2, Trond Hindenes
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Cool, I'm writing up a short doc and putting it on a branch in
>>>>>>>>>>> my ansible fork right now. Will send you links and stuffs in a
>>>>>>>>>>> couple of
>>>>>>>>>>> minutes.
>>>>>>>>>>>
>>>>>>>>>>> On Wednesday, August 27, 2014 12:00:08 AM UTC+2, Damon Overboe
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Yah that'd be great. I'll happily test it out if you like.
>>>>>>>>>>>>
>>>>>>>>>>>> I'm only targeting Svr 12s, and just using it right now to set
>>>>>>>>>>>> up new build agent nodes. I want to do a lot more with it but
>>>>>>>>>>>> figured that
>>>>>>>>>>>> would be a good place to start.
>>>>>>>>>>>>
>>>>>>>>>>>> On Tuesday, August 26, 2014 4:55:53 PM UTC-5, Trond Hindenes
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> BTW, i have a brand spankin new win_package module coming up
>>>>>>>>>>>>> which will handle not only msis but all kinds of installs, and
>>>>>>>>>>>>> also
>>>>>>>>>>>>> supports auto-downloading source files from a url so that you
>>>>>>>>>>>>> don't need to
>>>>>>>>>>>>> win_get_url first. I'm waiting for some improvements to the
>>>>>>>>>>>>> powershell
>>>>>>>>>>>>> helper scripts to be merged before i PR that module, but let me
>>>>>>>>>>>>> know and
>>>>>>>>>>>>> I'd be happy to share it with you.
>>>>>>>>>>>>>
>>>>>>>>>>>>> -Trond
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tuesday, August 26, 2014 11:50:29 PM UTC+2, Trond Hindenes
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Damon,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> That's weird,
>>>>>>>>>>>>>> I tried your playbook on two 2012R2 hosts just now, and it
>>>>>>>>>>>>>> worked fine. Only thing I noticed is that you're saving to a
>>>>>>>>>>>>>> "non-standard"
>>>>>>>>>>>>>> folder. Could you test it by setting the dest to dest:
>>>>>>>>>>>>>> 'C:\tortoise-1.7.msi' or something in win_Get_url?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> About debugging: It's kinda hard, because Ansible cleans up
>>>>>>>>>>>>>> the temp files. I'm gonna post an issue to see if we can get a
>>>>>>>>>>>>>> "win_debug"
>>>>>>>>>>>>>> setting in ansible.cfg to enable leaving the files in place so
>>>>>>>>>>>>>> that we can
>>>>>>>>>>>>>> run the generated script and param file through a normal
>>>>>>>>>>>>>> PowerShell
>>>>>>>>>>>>>> debugger. For now you have to take the params you send and store
>>>>>>>>>>>>>> them as a
>>>>>>>>>>>>>> json file. Then, combine the module ps1 file with the
>>>>>>>>>>>>>> powershell.ps1 file
>>>>>>>>>>>>>> into a single file and execute that file in powershell with the
>>>>>>>>>>>>>> params file
>>>>>>>>>>>>>> as the first and only argument. Its bothersome to say the least.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tuesday, August 26, 2014 11:37:57 PM UTC+2, Damon Overboe
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here is a subsequent success on both (ran again bc the HTTP
>>>>>>>>>>>>>>> 500 isn't
>>>>>>>>>>>>>>> the error I normally see)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> ok: [node1.domain.com] => {"changed": false, "exit_reason":
>>>>>>>>>>>>>>> {"name": "File specified in creates parameter already exists"}}
>>>>>>>>>>>>>>> <node3.domain.com> WINRM RESULT <Response code 0, out "{
>>>>>>>>>>>>>>> "changed": t", err " Process is terminat">
>>>>>>>>>>>>>>> changed: [node3.domain.com] => {"changed": true, "log":
>>>>>>>>>>>>>>> "C:\\Users\\dummy\\AppData\\Local\\Temp\\tmp30A4.tmp"}
>>>>>>>>>>>>>>> ____________
>>>>>>>>>>>>>>> < PLAY RECAP >
>>>>>>>>>>>>>>> ------------
>>>>>>>>>>>>>>> \ ^__^
>>>>>>>>>>>>>>> \ (oo)\_______
>>>>>>>>>>>>>>> (__)\ )\/\
>>>>>>>>>>>>>>> ||----w |
>>>>>>>>>>>>>>> || ||
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> node1.domain.com : ok=2 changed=1 unreachable=0
>>>>>>>>>>>>>>> failed=0
>>>>>>>>>>>>>>> node3.domain.com : ok=2 changed=2 unreachable=0
>>>>>>>>>>>>>>> failed=0
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
--
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/f9273141-6659-4876-bdc8-efef13ccccd3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.