Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
eb36ff45
Commit
eb36ff45
authored
Dec 23, 2012
by
Dag Wieers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make script module use raw module so it does not require python
parent
3d3deb97
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
15 deletions
+26
-15
lib/ansible/runner/action_plugins/script.py
+12
-11
library/raw
+9
-1
library/script
+5
-3
No files found.
lib/ansible/runner/action_plugins/script.py
View file @
eb36ff45
...
...
@@ -34,9 +34,6 @@ class ActionModule(object):
def
run
(
self
,
conn
,
tmp
,
module_name
,
module_args
,
inject
):
''' handler for file transfer operations '''
# load up options
options
=
utils
.
parse_kv
(
module_args
)
tokens
=
shlex
.
split
(
module_args
)
source
=
tokens
[
0
]
# FIXME: error handling
...
...
@@ -44,8 +41,6 @@ class ActionModule(object):
source
=
utils
.
template
(
self
.
runner
.
basedir
,
source
,
inject
)
source
=
utils
.
path_dwim
(
self
.
runner
.
basedir
,
source
)
exec_rc
=
None
# transfer the file to a remote tmp location
source
=
source
.
replace
(
'
\x00
'
,
''
)
# why does this happen here?
args
=
args
.
replace
(
'
\x00
'
,
''
)
# why does this happen here?
...
...
@@ -56,12 +51,18 @@ class ActionModule(object):
# fix file permissions when the copy is done as a different user
if
self
.
runner
.
sudo
and
self
.
runner
.
sudo_user
!=
'root'
:
self
.
runner
.
_low_level_exec_command
(
conn
,
"chmod a+r
%
s"
%
tmp_src
,
tmp
)
prepcmd
=
'chmod a+rx
%
s'
%
tmp_src
else
:
prepcmd
=
'chmod +x
%
s'
%
tmp_src
# add preparation steps to one ssh roundtrip executing the script
module_args
=
prepcmd
+
'; '
+
tmp_src
+
' '
+
args
# make executable
self
.
runner
.
_low_level_exec_command
(
conn
,
"chmod +x
%
s"
%
tmp_src
,
tmp
)
handler
=
utils
.
plugins
.
action_loader
.
get
(
'raw'
,
self
.
runner
)
result
=
handler
.
run
(
conn
,
tmp
,
'raw'
,
module_args
,
inject
)
#
run it through the command module
module_args
=
tmp_src
+
" "
+
args
+
" #USE_SHELL"
return
self
.
runner
.
_execute_module
(
conn
,
tmp
,
'command'
,
module_args
,
inject
=
inject
)
#
clean up after
if
tmp
.
find
(
"tmp"
)
!=
-
1
and
C
.
DEFAULT_KEEP_REMOTE_FILES
!=
'1'
:
self
.
runner
.
_low_level_exec_command
(
conn
,
'rm -rf
%
s >/dev/null 2>&1'
%
tmp
,
tmp
)
return
result
library/raw
View file @
eb36ff45
...
...
@@ -16,8 +16,16 @@ description:
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.
- This module does not require python on the remote system, much like
the M(script) 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"
code: "action: raw yum -y install python-simplejson"
notes:
- If you want to execute a command securely and predictably, it may be
better to use the M(command) module instead. Best practices when writing
playbooks will follow the trend of using M(command) unless M(shell) is
explicitly required. When running ad-hoc commands, use your best
judgement.
author: Michael DeHaan
'''
library/script
View file @
eb36ff45
...
...
@@ -4,9 +4,11 @@ DOCUMENTATION = """
module: script
short_description: Runs a local script on a remote node
description:
- The M(script) module takes the script name followed by a list of space-delimited arguments.
- The M(script) module takes the script name followed by a list of
space-delimited arguments.
- The given script will be processed through the shell environment.
- See also the M(command) and M(shell) modules.
- This module does not require python on the remote system, much like
the M(raw) module.
options:
free_form:
description:
...
...
@@ -16,7 +18,7 @@ options:
aliases: []
examples:
- description: "Example from Ansible Playbooks"
code: "
script:
/some/local/script.sh --some-arguments 1234"
code: "
action: script
/some/local/script.sh --some-arguments 1234"
notes:
- It is preferable to write Ansible modules than pushing scripts. Convert your script to an Ansible module for bonus points!
author: Michael DeHaan
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment