Commit Graph

70 Commits (36cbd771a4f26294175a902b51928c6342f39fdd)

Author SHA1 Message Date
Brian Coca dbab703265 fine tuned password handling as we were getting false positives, probably caused by other changes up the stack that now call these functions in more cases. 2015-08-07 16:27:25 -04:00
Brian Coca df768e0db4 fixed debug statement 2015-08-07 16:27:25 -04:00
Brian Coca cb2cfaebda started porting chroot to v2 2015-08-06 08:55:22 -04:00
Abhijit Menon-Sen 72715c6add Fix ssh connections to IPv6 addresses
We can unconditionally wrap remote_addr in square brackets for scp and
sftp (both of which require them for IPv6 addresses), but not wrap them
at all for ssh (which doesn't accept them). This way, we don't have to
detect and treat IPv6 addresses specially. This works for hostnames,
IPv4 addresses, and IPv6 addresses.

The earlier code seemed to intend to wrap all IPv6 addresses in square
brackets, which would have broken ssh, but it actually made no attempt
to detect IPv6 addresses at all (so it broke only with IPv6 addresses
for scp and sftp).

Based on a review of PR #11677 by @JuiceBoxSingularity
2015-08-02 23:46:01 +05:30
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