988db558b3
Since we use 'raw' heavily on equipment where 'command' and 'shell' are not (yet) working (and python may need to be installed first using raw) these improvements are necessary in order to write more complex scripts (with return code handling and separated stdout/stderr). This change includes the following changes: - exec_command() now returns the return code of the command - _low_level_exec_command() now returns a dict, including 'rc', 'stdout' and 'stderr' - all users of the above interfaces have been improved to make use of the above changes - all connection plugins have been modified to return rc and stderr - fix the newline problem (stdout and stderr would have excess newlines) In a future commit I intend to add assertions or error handling code to verify the return code in those places where it wasn't done. Since only the output was available, the return code was ignored, even though we expect them to be 0.
23 lines
1.1 KiB
Text
23 lines
1.1 KiB
Text
# this is a virtual module that is entirely implemented server side
|
|
|
|
DOCUMENTATION = '''
|
|
---
|
|
module: raw
|
|
short_description: Executes a low-down and dirty SSH command
|
|
options: {}
|
|
description:
|
|
- Executes a low-down and dirty SSH command, not going through the module
|
|
subsystem. This is useful and should only be done in two cases. The
|
|
first case is installing C(python-simplejson) on older (Python 2.4 and
|
|
before) hosts that need it as a dependency to run modules, since nearly
|
|
all core modules require it. Another is speaking to any devices such as
|
|
routers that do not have any Python installed. In any other case, using
|
|
the M(shell) or M(command) module is much more appropriate. Arguments
|
|
given to M(raw) are run directly through the configured remote shell.
|
|
Standard output, error output and return code are returned when
|
|
available. There is no change handler support for this module.
|
|
examples:
|
|
- description: Example from C(/usr/bin/ansible) to bootstrap a legacy python 2.4 host
|
|
code: ansible newhost.example.com -m raw -a "yum -y install python-simplejson"
|
|
author: Michael DeHaan
|
|
'''
|