Skip to main content

Tool to manage remote systems and services

Project description

Build Status Code Coverage Code Health

python-rrmngmnt

Remote Resources MaNaGeMeNT

Intro

This tool helps you manage remote machines and services running on that. It is targeted to Linux based machines. All is done via SSH connection, that means SSH server must be running there already.

from rrmngmnt import Host, RootUser

h = Host("10.11.12.13")
h.users.append(RootUser('123456'))
exec = h.executor()
print exec.run_cmd(['echo', 'Hello World'])

Features

List of provided interfaces to manage resources on machine, and examples.

Filesystem

Basic file operations, you can find there subset of python ‘os’ module related to files.

print h.fs.exists("/path/to/file")
h.fs.chown("/path/to/file", "root", "root")
h.fs.chmod("/path/to/file", "644")
h.fs.unlink("/path/to/file")

In additional there are methods to fetch / put file from / to remote system to / from local system.

h.fs.get("/path/to/remote/file", "/path/to/local/file/or/target/dir")
h.fs.put("/path/to/local/file", "/path/to/remote/file/or/target/dir")

There is one special method which allows transfer file between hosts.

h1.fs.transfer(
    "/path/to/file/on/h1",
    h2, "/path/to/file/on/h2/or/target/dir",
)

You can also mount devices.

with h.fs.mount_point(
    '//example.com/share', opts='ro,guest',
    fstype='cifs', target='/mnt/netdisk'
) as mp:
    h.fs.listdir(mp.target) # list mounted directory
    mp.remount('rw,sync,guest') # remount with different options
    h.fs.touch('%s/new_file' % mp.target) # touch file

Network

It allows to manage network configuration.

print h.network.hostname
h.network.hostname = "my.machine.org"
print h.network.all_interfaces()
print h.network.list_bridges()

Package Management

It encapsulates various package managements. It is able to determine which package management to use. You can still specify package management explicitly.

Implemented managements:

  • APT

  • YUM

  • DNF

  • RPM

# install htop package using implicit management
h.package_management.install('htop')
# remove htop package using rpm explicitly
h.package_management('rpm').remove('htop')

System Services

You can toggle system services, it encapsulates various service managements. It is able to determine which service management to use in most cases.

Implemented managements:

  • Systemd

  • SysVinit

  • InitCtl

if h.service('httpd').status():
    h.service('httpd').stop()
if h.service('httpd').is_enabled():
    h.service('httpd').disable()

Operating System Info

Host provide os attribute which allows obtain basic operating system info. Note that os.release_info depends on systemd init system.

print h.os.distribution
# Distribution(distname='Fedora', version='23', id='Twenty Three')

print h.os.release_info
# {'HOME_URL': 'https://fedoraproject.org/',
#  'ID': 'fedora',
#  'NAME': 'Fedora',
#  'PRETTY_NAME': 'Fedora 23 (Workstation Edition)',
#  'VARIANT': 'Workstation Edition',
#  'VARIANT_ID': 'workstation',
#  'VERSION': '23 (Workstation Edition)',
#  'VERSION_ID': '23',
#  ...
# }

print h.os.release_str
# Fedora release 23 (Twenty Three)

Storage Management

It is in PROGRESS state. Planed are NFS & LVM services.

Power Management

Give you possibility to control host power state, you can restart, poweron, poweroff host and get host power status.

Implemented managements:

  • SSH

  • IPMI

ipmi_user = User(pm_user, pm_password)
ipmi_params = {
    'pm_if_type': 'lan',
    'pm_address': 'test-mgmt.testdomain',
    'user': ipmi_user
}
h.add_power_manager(
    power_manager.IPMI_TYPE, **ipmi_params
)
# restart host via ipmitool
h.power_manager.restart()

Requires

  • paramiko

  • netaddr

  • six

Install

python setup.py devop

Test

tox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-rrmngmnt-0.1.7.zip (60.9 kB view details)

Uploaded Source

Built Distributions

python_rrmngmnt-0.1.7-py2.7.egg (75.0 kB view details)

Uploaded Source

python-rrmngmnt-0.1.7-1.src.rpm (57.8 kB view details)

Uploaded Source

python-rrmngmnt-0.1.7-1.noarch.rpm (67.1 kB view details)

Uploaded Source

File details

Details for the file python-rrmngmnt-0.1.7.zip.

File metadata

File hashes

Hashes for python-rrmngmnt-0.1.7.zip
Algorithm Hash digest
SHA256 a2e3e13f29b6bf944161a7e94f45e601bcb1a411031938b5b1e05201faa657df
MD5 58bcb106434a70dcd44f73170c85d01b
BLAKE2b-256 6f26fb63270f0f9f0bc7170c95c9c3ad2220081155a3b18dfa4dc4c1270c691e

See more details on using hashes here.

File details

Details for the file python_rrmngmnt-0.1.7-py2.7.egg.

File metadata

File hashes

Hashes for python_rrmngmnt-0.1.7-py2.7.egg
Algorithm Hash digest
SHA256 1687d95664cfb51ac32cc9ee4a719950423f7c076b006aad0d3874f5ed13af18
MD5 c30477a1c540a30c22604c83fe166b13
BLAKE2b-256 9c8e04173744023d3ee17886f1e8a0ee2282d3ed7ef936fe9e25cccad2b4c99f

See more details on using hashes here.

File details

Details for the file python-rrmngmnt-0.1.7-1.src.rpm.

File metadata

File hashes

Hashes for python-rrmngmnt-0.1.7-1.src.rpm
Algorithm Hash digest
SHA256 6e72f4cc30a50f08991667823f48996943896f023aa7992d5b5fd70bf2027abd
MD5 0ae2f8ef2f9564880c5bdfa6770738d0
BLAKE2b-256 3ddc4415d1974a7de82acfdce13d215828cfa6dade285ba2d6d58f6a0fbb0bff

See more details on using hashes here.

File details

Details for the file python-rrmngmnt-0.1.7-1.noarch.rpm.

File metadata

File hashes

Hashes for python-rrmngmnt-0.1.7-1.noarch.rpm
Algorithm Hash digest
SHA256 d03d6f68b41d96ffd33de2ce29ecd98cb9e905e4311f32291bbb7cb13bec8176
MD5 59e49b44888c5827862e15d4243abc71
BLAKE2b-256 cc06e9ae9db2de70d59bf734f3d958f478b325a582106411e0a8d4eb459815f4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page