Transfer a local script file to a remote host and execute it.
Project description
Remote Runner
Transfer a local script file to a remote host and execute it.
Requirements
Python 2.7 and Python 3 are supported.
Paramiko 1.10+.
Install
pip install remrunner
Synopsis
from remrunner import runner r = runner.Runner(host, username) rval, stdout, stderr = r.run('/path/to/local/script.py') if rval: print(stderr) else: print(stdout) r.close()
Uses
Great when using scripts to collect information from a large number of remote hosts.
No need to maintain scripts across multiple systems. Only the script versions on the local host need to be maintained.
Details
Named files are copied to a temp location (./.remrunner/[PID]/) on the remote host, permissions are set to 0700, and script is then executed.
On cleanup, the [PID] directory and all contents are removed before closing the connections.
API
Class Runner
- init(host, user, kwargs)
host : Required. IP Address or FQDN
user : Optional. Defaults to current running user on local machine.
keyword-args: auto_add : (Boolean) Defaults to True. Set Paramiko Client.AutoAddPolicy.
- run(script, sudo, timeout, opts)
Run the named local script on remote host.
script : Path to script on local machine
sudo : (Boolean) Defaults to False. When true, the execution command on remote machine will be prefaced with “sudo “
timeout : (seconds, optional) Defaults to 10
opts : optional command-line arguments that will be passed to remote script.
- close()
Clean up temporary directories on remote host and close SSH and SFTP sessions.
Examples
Run remote script with sudo:
r.run(script, True)
Run remote script and specify a 60 second timeout:
r.run(script, False, 60)
Run remote script with timeout and optional arguments:
r.run(script, False, 15, "--verbose --interval=4")
Known Issues
Currently, as this is intended to be used for automation, remrunner assumes that SSH keys to allow password-less logins are already in place. There is no option to prompt for password or ssh passphrase. Maybe in a future release.
To Do
Could use better exception handling in a few places. Needs a tests. Probably needs sanitizing/de-tainting of optional user arguments.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file remrunner-0.5.tar.gz
.
File metadata
- Download URL: remrunner-0.5.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e21129d92ce2d07e642b35aa550ae3143c83aae26471f8a367d532075af7b16 |
|
MD5 | 44e6e617858d503836b5f553ca937aeb |
|
BLAKE2b-256 | b8da24ef49bb1ac63a94a2218e72280f04ac92528f9a7c805a0cdc5b4557a5d0 |