Provides execution of multiple commands in multiple servers in parallel (multiple processes)
Project description
remote_multicommand
remote_multicommand provides execution of multiple commands in multiple servers in parallel (multiple processes)
Executing a list of commands in multiple servers in parallel
>>> from remote_multicommand import RemoteMultiCommand
>>> cmds_list = ['hostname','whoami']
>>> rm_cmd = RemoteMultiCommand('/tmp/sshkey')
Log: Changing log level to ERROR | Log level:ERROR | Date:01/11/2016 16:40:10
>>> rm_cmd.set_log_level('DEBUG')
Log: Changing log level to DEBUG | Log level:DEBUG | Date:01/11/2016 16:40:12
>>> servers_list = ['serverOne', 'serverTwo', 'serverThree', 'serverFour']
>>> rm_cmd.launch_list_of_commands(cmds_list, num_of_process, servers_list, ssh_log_level='DEBUG')
Log: Executing 2 commands in the list of servers: | Log level:INFO | Date:01/11/2016 16:40:27
Log: Processing in the 4 servers will be done in 1 iterations. | Log level:INFO |
# Date:01/11/2016 16:40:27
Log: Processing 4 servers in this iteration. | Log level:DEBUG | Date:01/11/2016 16:40:27
Log: Servers: ['serverOne', 'serverTwo', 'serverThree', 'serverFour'] | Log level:DEBUG |
# Date:01/11/2016 16:40:27
Log: It took 2.338 seconds to execute command 'hostname' in all 4 servers. | Log level:INFO
# | Date:01/11/2016 16:40:30
Log: Processing in the 4 servers will be done in 1 iterations. | Log level:INFO |
# Date:01/11/2016 16:40:30
Log: Processing 4 servers in this iteration. | Log level:DEBUG | Date:01/11/2016 16:40:30
Log: Servers: ['serverOne', 'serverTwo', 'serverThree', 'serverFour'] | Log level:DEBUG |
# Date:01/11/2016 16:40:30
Log: It took 2.396 seconds to execute command 'whoami' in all 4 servers. | Log level:INFO |
# Date:01/11/2016 16:40:32
Log: Server serverTwo:
- All 2 commands were issued: Yes
- Number of commands issued: 2
- Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32
Log: Server serverOne:
- All 2 commands were issued: Yes
- Number of commands issued: 2
- Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32
Log: Server serverThree:
- All 2 commands were issued: Yes
- Number of commands issued: 2
- Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32
Log: Server serverFour:
- All 2 commands were issued: Yes
- Number of commands issued: 2
- Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32
Log: It took 4.735 seconds to execute the list of commands in all 4 servers. | Log level:INFO
| Date:01/11/2016 16:40:32
{'serverTwo': [OrderedDict([('command', 'hostname'), ('access', True),
('result', True), ('output', 'serverTwo\n')]),
OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\n')])],
'serverOne': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),
('output', 'serverOne\n')]),
OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\n')])],
'serverThree': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),
('output', 'serverThree\n')]),
OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\n')])],
'serverFour': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),
('output', 'serverFour\n')]),
OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\n')])]}
Installation
To install remote_multicommand, simply run:
$ pip install remote_multicommand
remote_multicommand is compatible with Python 2.6+
Documentation
Source Code
Feel free to fork, evaluate and contribute to this project.
License
GPLv3 licensed.
OBS
Due to bug https://github.com/paramiko/paramiko/issues/753, we must use paramiko versions under or equal 1.17.2
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remote_multicommand-0.1.3.tar.gz.
File metadata
- Download URL: remote_multicommand-0.1.3.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea94a0590bd9b1c7205376dab93b4a53ebd64fbc31a651400d3532f54e29595e
|
|
| MD5 |
90da250e2be8522cc11392be6dd12aab
|
|
| BLAKE2b-256 |
1bacc95c724764a3bb4831443013a5e83e7c5516214adbedf913587707c790c2
|
File details
Details for the file remote_multicommand-0.1.3-py2.7.egg.
File metadata
- Download URL: remote_multicommand-0.1.3-py2.7.egg
- Upload date:
- Size: 5.4 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5d61a801cb149f31acf0aa2967e30212467e3c4e4d36ec317ff5bdb53cf2223
|
|
| MD5 |
75c69affbffdd15dd563e78d62d10d22
|
|
| BLAKE2b-256 |
f78c5ff047bdbd3b7e57a0e1110683be3980684468e67c518135d2d5d8e21c22
|