Skip to main content

Fully python multi-node automation project

Project description

lodepy

lodepy is a Multi-node fully python automation tool. It is agentless and executes tasks over SSH.

The concept

In a nutshell, lodepy serves a pretty simple task: execute ssh commands on servers to set them up.

With this comes a variety of somewhat neccessary functionalities that lodepy implements:

  • Execute the commands (obviously) within well defined "Groups" of "Nodes"
  • Create a well defined logging system to stream and monitor task execution
  • Provide a clean wrapper / execution model to seamlessly run operations and comparisons on multiple results.

Using lodepy

In it's current state the main interaction is going to be with the Group class and its subclasses (namely the GroupReturn).

  1. Definining a group is quickly done with the use of lodepy.import_group_txt(file: str) -> Dict[str, Group]

    1. This is going to be in the format of:
      [group1]
      
      node1, 1.1.1.1
      node2, 1.1.1.2
      
      [group2]
      
      node3, 1.1.1.1
      node4, 1.1.1.1
      
      [group_name]
      node_name, ssh_ip
      
    2. Note, already created groups can be found in the lodepy.data_store().groups
  2. Executing commands

    1. We can then execute a variety of Group commands. A series of these are listed as functions of Group.py.
    2. Some commands can be custom created. In this case you simply need to:
      1. Define the Task
      2. <Group>.execute_task(<Task>(params))
  3. Using these resulting GroupReturn

    1. Filtering
      1. GroupReturns handle filtering in the such way:
        group_return = GroupReturn()
        double_lt_5 = group_return * 2 < 5
        # double_lt_5 is going to be the GroupReturn filtered with only nodes doubled returning a value less than 5.
        
        1. Note, this also works with versioning. A command like git_version will be able to handle filtering such as group_return > 1.0.*
    2. Executing future commands
      1. GroupReturns are simply subclasses of a Group. They can exectue commands and function entirely similarly.
    3. Any operations available to the value class
      1. Group returns aim to be abtract enough that any of the commands it's value expects to handle, so can the GroupReturn

In total this is the entire functionality loop of lodepy. There is still more to cover (and to implement), but to expect: log handling / streaming results elsewhere, more configurability (error handling, execution tuning, etc.), a variety of builtin Tasks for common usecases and the ability to seamlessly create more Tasks (and recursively handle encapsuled tasks).

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

lodepy-0.0.1.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

lodepy-0.0.1-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file lodepy-0.0.1.tar.gz.

File metadata

  • Download URL: lodepy-0.0.1.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for lodepy-0.0.1.tar.gz
Algorithm Hash digest
SHA256 142940ee39f37214688a803e9761e274498566ff2c5f47fa5477087aad3f629b
MD5 4bd8f8072cbedc26733dd89606ad1bb3
BLAKE2b-256 c629905ea750e76716502847deaa4055aa59d388ea1532df83b09617188d9962

See more details on using hashes here.

File details

Details for the file lodepy-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: lodepy-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for lodepy-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d5651b47c13389e1111099ef7ff4460af2c448f8c54486f9b3065ef732900832
MD5 defd838a7323115fd044ce74b90bea57
BLAKE2b-256 6e643eeef966c52f307332fdbb1a022097f286a46f5984128288470ad8d7ddfb

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