salt.modules.cmdmod

A module for shelling out

Keep in mind that this module is insecure, in that it can give whomever has access to the master root execution access to all salt minions

salt.modules.cmdmod.exec_code(lang, code, cwd=None)

Pass in two strings, the first naming the executable language, aka - python2, python3, ruby, perl, lua, etc. the second string containing the code you wish to execute. The stdout and stderr will be returned

CLI Example:

salt '*' cmd.exec_code ruby 'puts "cheese"'
salt.modules.cmdmod.has_exec(cmd)

Returns true if the executable is available on the minion, false otherwise

CLI Example:

salt '*' cmd.has_exec cat
salt.modules.cmdmod.retcode(cmd, cwd=None, runas=None, shell='/bin/sh', env=(), template=None, umask=None, quiet=False)

Execute a shell command and return the command's return code.

CLI Example:

salt '*' cmd.retcode "file /bin/bash"

The template arg can be set to 'jinja' or another supported template engine to render the command arguments before execution. For example:

salt '*' cmd.retcode template=jinja "file {{grains.pythonpath[0]}}/python"
salt.modules.cmdmod.run(cmd, cwd=None, runas=None, shell='/bin/sh', env=(), template=None, rstrip=True, umask=None, quiet=False, **kwargs)

Execute the passed command and return the output as a string

CLI Example:

salt '*' cmd.run "ls -l | awk '/foo/{print $2}'"

The template arg can be set to 'jinja' or another supported template engine to render the command arguments before execution. For example:

salt '*' cmd.run template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print $2}'"
salt.modules.cmdmod.run_all(cmd, cwd=None, runas=None, shell='/bin/sh', env=(), template=None, rstrip=True, umask=None, quiet=False, **kwargs)

Execute the passed command and return a dict of return data

CLI Example:

salt '*' cmd.run_all "ls -l | awk '/foo/{print $2}'"

The template arg can be set to 'jinja' or another supported template engine to render the command arguments before execution. For example:

salt '*' cmd.run_all template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print $2}'"
salt.modules.cmdmod.run_stderr(cmd, cwd=None, runas=None, shell='/bin/sh', env=(), template=None, rstrip=True, umask=None, quiet=False, **kwargs)

Execute a command and only return the standard error

CLI Example:

salt '*' cmd.run_stderr "ls -l | awk '/foo/{print $2}'"

The template arg can be set to 'jinja' or another supported template engine to render the command arguments before execution. For example:

salt '*' cmd.run_stderr template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print $2}'"
salt.modules.cmdmod.run_stdout(cmd, cwd=None, runas=None, shell='/bin/sh', env=(), template=None, rstrip=True, umask=None, quiet=False, **kwargs)

Execute a command, and only return the standard out

CLI Example:

salt '*' cmd.run_stdout "ls -l | awk '/foo/{print $2}'"

The template arg can be set to 'jinja' or another supported template engine to render the command arguments before execution. For example:

salt '*' cmd.run_stdout template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print $2}'"
salt.modules.cmdmod.script(source, args=None, cwd=None, runas=None, shell='/bin/sh', env='base', template='jinja', umask=None, **kwargs)

Download a script from a remote location and execute the script locally. The script can be located on the salt master file server or on an HTTP/FTP server.

The script will be executed directly, so it can be written in any available programming language.

The script can also be formated as a template, the default is jinja. Arguments for the script can be specified as well.

CLI Example:

salt '*' cmd.script salt://scripts/runme.sh
salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
salt.modules.cmdmod.script_retcode(source, cwd=None, runas=None, shell='/bin/sh', env='base', template='jinja', umask=None, **kwargs)

Download a script from a remote location and execute the script locally. The script can be located on the salt master file server or on an HTTP/FTP server.

The script will be executed directly, so it can be written in any available programming language.

The script can also be formated as a template, the default is jinja.

Only evaluate the script return code and do not block for terminal output

CLI Example:

salt '*' cmd.script_retcode salt://scripts/runme.sh
salt.modules.cmdmod.which(cmd)

Returns the path of an executable available on the minion, None otherwise

CLI Example:

salt '*' cmd.which cat
salt.modules.cmdmod.which_bin(cmds)

Returns the first command found in a list of commands

CLI Example:

salt '*' cmd.which_bin '[pip2, pip, pip-python]'

Previous topic

salt.modules.cassandra

Next topic

salt.modules.config