Commit graph

66 commits

Author SHA1 Message Date
Chris Church
e87cf4a3cc Fixes for WinRM/PowerShell support in v2.
- Add support for inserting module args into PowerShell modules.  Fixes #11661.
- Support Windows paths containing spaces.  Applies changes from #10727 to v2.  Fixes #9999.  Should also fix ansible/ansible-modules-core#944 and ansible/ansible-modules-core#1007.
- Change how execution policy is set for running remote scripts.  Applies changes from #11092 to v2.  Also fixes ansible/ansible-modules-core#1776.
- Use codepage 65001 (UTF-8) for WinRM connection instead of default (CP437), convert command to UTF-8 and results from UTF-8.  Replaces changes from #10024.  Fixes #11198.
- Close WinRM connection when task completes.
- Use win_stat, win_file and win_copy modules instead of stat, file and copy when called from within other action plugins (only when using WinRM+PowerShell).
- Unquote Windows path arguments before passing to win_stat, win_file, win_copy and slurp modules (only when using WinRM/PowerShell).
- Check for win_ping module to determine if core modules are missing (only when using WinRM/PowerShell).
- Add stdout_lines to result from running low level commands (so stdout_lines is available when using raw/script).
- Update copy action plugin to use shell functions for joining paths and checking for trailing slash.
- Update fetch action plugin to unquote source path when using Windows paths.
- Add win_copy and win_template action plugins that inherit from copy and template.
- Support running .bat and .cmd scripts using default system encoding instead of UTF-8.
- Always send PowerShell commands as base64-encoded blobs to allow for running simple PowerShell commands via raw.
- Support running modules on Windows with interpreters other than PowerShell.
- Update integration tests to support above changes and test unicode fixes.
- Add test for win_user error from ansible/ansible-modules-core#1241 (fixed by ansible/ansible-modules-core#1774).
- Add test for additional win_stat output values (implemented by ansible/ansible-modules-core#1473).
- Add test for OS architecture and name from setup.ps1 (implemented by ansible/ansible-modules-core#1100).

All WinRM integration tests pass for me with these changes.
2015-07-31 14:38:31 -04:00
Brian Coca
496186f5de makes ssh plugin resilient against invalid entries in hosts file
fixes #10238
2015-07-31 12:01:58 -04:00
Brian Coca
b2dc66c7ea now check stderr also on become for ssh plugin for the cases where sudo or su do not want to prompt/echo on stdin
fixes #11796
2015-07-30 13:11:41 -04:00
Brian Coca
0e77871426 fixed non ignore errors path to actually interrupt
fixed cases where missing/inaccessible file gave exception, now you get nice error
2015-07-29 20:13:17 -04:00
Brian Coca
b9710b4a34 wrapped new system ssh key lookup in case file does not exist 2015-07-24 23:54:13 -04:00
Patrick Michaud
e4df8c3d36 Have paramiko use /etc/ssh_known_hosts
Fixes an issue with a confusing error: "paramiko: The authenticity of host '[host]' can't be established" when ssh on the command line doesn't complain

Closes PR #7730
2015-07-25 09:09:28 +05:30
James Cammarata
0fcd53e887 Make sure the command is sudoable before checking for the become password
Fixes #11714
2015-07-24 11:37:26 -04:00
Toshio Kuratomi
f8e4aff4c1 Cleanups:
* Don't reference __class__ when we can use the instance itself
* use isdisjoint() as it can stop once a match is found
* Remove a condtional that was taken care of in the conditonal just above
2015-07-23 12:13:45 -07:00
Brian Coca
851ed45bbf adding display to plugins and start moving debug to display 2015-07-23 10:26:12 -04:00
James Cammarata
7a9916422a Fixing up error handling for fetch_file ops in connection plugins
* enable batch mode (configurable with a config option, on by default)
  for sftp transfers, so we can catch errors more easily
* general cleanup in the local connection plugin and fetch action plugin

Fixes #11612
2015-07-22 14:25:47 -04:00
James Cammarata
e64989beb4 Moving ConnectionInformation -> PlayContext
Also making PlayContext a child class of the Playbook Base class,
which gives it access to all of the FieldAttribute code to ensure
field values are correctly typed after post_validation

Fixes #11381
2015-07-21 12:13:50 -04:00
James Cammarata
91a4b866b0 Fix ssh pipelining 2015-07-20 15:40:49 -04:00
James Cammarata
2c98b271c8 Make paramiko password detection logic match ssh connection 2015-07-19 02:23:53 -04:00
James Cammarata
1c185b68be Rearranging some become stuff in relation to action/connection plugins
Moving the make_sudo_cmd() calls back up to the action level so that connection
plugins don't have to know about it at all, and moving some of the become data
(prompt and success_key) into the ConnectionInformation object so they don't
need to be passed around needlessly.
2015-07-19 01:12:23 -04:00
James Cammarata
7a9b5b6fe8 Remove unnecessary make_become_cmd from paramiko exec_command
Fixes #11611
2015-07-19 00:08:09 -04:00
James Cammarata
2a5fbd8570 Winrm fixes for devel
* Include fixes for winrm connection plugin from v1 code
* Fixing shell plugin use
2015-06-29 22:49:25 -04:00
Toshio Kuratomi
548a7288a9 Use BUFSIZE when putting file as well as fetching file. 2015-06-24 01:00:22 -07:00
Toshio Kuratomi
270be6a6f5 Fix exec_command to not use a shell 2015-06-23 22:27:45 -07:00
Toshio Kuratomi
e461241d7b Fix fetch_file() method 2015-06-23 14:45:44 -07:00
Hugh Saunders
4246777759 Re-implement the ssh connection retry, originally added in 2df690 2015-06-23 12:14:14 -04:00
Toshio Kuratomi
952166f48e Fix problem with chroot connection plugins and symlinks from within the chroot. 2015-06-22 20:08:08 -07:00
Toshio Kuratomi
61e367f549 Better error messages when the file to be transferred does not exist. 2015-06-22 20:08:08 -07:00
Brian Coca
102de96ebf avoid password handling when no password is supplied 2015-06-21 01:24:35 -04:00
Brian Coca
3bad03d57a cleaned up and optimized become handling paths 2015-06-21 01:13:22 -04:00
Toshio Kuratomi
a77b58e351 Bumpt the BUFSIZE to 64k for better performance 2015-06-19 11:52:06 -07:00
Toshio Kuratomi
0777d02505 Fix problem with jail and zone connection plugins and symlinks from within the jail/zone. 2015-06-19 11:09:48 -07:00
Toshio Kuratomi
ca2f2c4ebd Fix problem with jail and zone connection plugins and symlinks from within the jail/zone. 2015-06-19 09:41:48 -07:00
Brian Coca
7bb2a7aa87 actually no password to handle, this should return false 2015-06-18 10:23:37 -04:00
Brian Coca
87a0ccc354 fixed typo 2015-06-18 10:12:04 -04:00
Brian Coca
aede9f08db fixed case in which prompt was None 2015-06-18 10:05:23 -04:00
Brian Coca
7c65f3ddd7 partial become support for local connection plugin 2015-06-18 01:46:43 -04:00
Brian Coca
671118ba71 fixed become password handling with paramiko 2015-06-17 23:31:55 -04:00
Brian Coca
744ec2bbad put hostkey locking into function (still needs fixing)
implemneted become handling here, cannot generalize well enough in base class
2015-06-17 23:31:54 -04:00
Brian Coca
d6672ad285 removed unused import 2015-06-17 23:31:54 -04:00
Brian Coca
5cfd0f82a0 moved away from generic function for become 2015-06-17 23:31:54 -04:00
Brian Coca
3fab516d3d fixed detection of incorrect password 2015-06-17 23:31:54 -04:00
Brian Coca
3b1b95b916 moved ipv6 handling to init
fixed become password handling
2015-06-16 15:48:10 -04:00
Brian Coca
bb7d33adbc moved become password handlingn to base class 2015-06-16 15:48:10 -04:00
Brian Coca
c87591f76f updated to new exec_command signature 2015-06-16 09:28:27 -04:00
Brian Coca
98f5534d9c adaptaed to new exec signature
should fix #11275
2015-06-16 09:12:42 -04:00
Brian Coca
dcf81e3ffe removed useless comments 2015-06-15 15:04:19 -04:00
Brian Coca
8ae58f7ea3 fixed executable, correctly this time 2015-06-15 11:26:45 -04:00
Brian Coca
1ce1c52f6f centralized bad password handling, fixed outputing of become method 2015-06-15 01:40:53 -04:00
Brian Coca
b89071e485 now detects incorrect password with sudo and su (at least in english) 2015-06-15 01:30:03 -04:00
Brian Coca
580993fef7 enabled initial support for password prompt on become
- moved check prompt/password functions to connection, make more senes there
- TODO: consider moving make_become to connection from connection_info
- removed executable param that was never overriden outside of connection info
2015-06-15 00:09:25 -04:00
Brian Coca
bac35ae773 set correct become mehotds for plugin
fixed mixup with remote password vs become_password
2015-06-14 23:49:10 -04:00
Brian Coca
c3ccf26b70 added become check back to connections 2015-06-14 23:45:56 -04:00
Brian Coca
a248678518 initial become support to ssh plugin
- password prompt detection and incorrect passwrod detection to connection info
- sudoable flag to avoid become on none pe'able commands
2015-06-14 23:03:23 -04:00
Brian Coca
c8fde467b5 Merge pull request #11163 from sivel/ssh-private-key-fixme
Re-introduce ssh connection private key support
2015-06-11 09:16:27 -04:00
Toshio Kuratomi
e88a9e943c Use to_bytes to avoid tracebacks when passed a byte str instead of a unicode string
Fixes #11198
2015-06-08 11:15:11 -07:00