Code Monkey home page Code Monkey logo

mass's Introduction

Mass

is a modularised tool for managing several nodes of a cluster. Open individual SSH terminals to specific groups of nodes of your cluster, a single node, or the whole lot. Do the same with ClusterSSH or virtual terminals in screen. Upload a file to each node or dowload a file from each, prefixed with the hostname. Run a command to conquer the world... or conduct that essential maintenance. Essentially your nodes are one RegEx away.

Now, that's what was significant to me. It turns out though that a lot of people find it really useful as a tool for looking up servers.

Driving it all is a full programming language that is very different to anything I've seen before. I'm building it to scratch a very specific itch and I doubt the full picture it will be useful to many people. In fact, most of it isn't in the public repo yet. However the foundations, which are already released, are really useful for Sysadmin tasks as described above.

This is a tiny percentage of the final vision, so there's a lot more to come!

Requirements

  • PHP
  • Bash

Install

export extraSrc="https://github.com/ksandom/mass.git"; curl https://raw.githubusercontent.com/ksandom/achel/master/supplimentary/misc/webInstall | bash

See docs/install.md for more information.

Important updates

  • Mass has undergone significant refactoring. You can now install it using the one-liner below. More info.

As a general rule, when ever you update, you should re-run install.sh to apply any structural changes as the internals are regularly being refactored.

Contributing

  • If there's something you want mass to do that it doesn't currently, take a look at the "creatingA" series in the documentation. It would be lovely if you can contribute is back.
  • There are TODO's floating around the documentation that need to be filled in. Filling these in would be very helpful.
  • There are # TODO's floating around in the code. There are going to be a few which I'll reserve for me. Typically I only do this if I've planned something else based on how that thing gets done.

The bottom line is, I wrote this tool because it's useful to me. If it's useful to you and you have something to contribute, it would be lovely for you to put it forward.

To submit it, create a pull request to the development branch. Make sure to include in the description

  • What you are trying to achieve.
  • Any relevant information that can help me test before and after that your code does what you are trying to achieve.

History

I've written a version of this tool at every company I've worked at since 2007 and it's always been a big hit. In each case it was very specific to the architecture of the given place, so it wasn't very portable.

This time I've developed it entirely in my own time, which means I can take the time to do it right and I can share it and take it with me. Phase 1, which is available now is maturing and ready for public use.

A month or so in to development, it became apparent that this would be a fantastic set of foundations for a concept I came up with in late 2000/early 2001. This is phase 2. It doesn't replace anything, it simply adds a whole lot. Therefore you don't have to worry about any macros you create becomming obsolete because of it. More on this in due time. ;)

mass's People

Contributors

ksandom avatar

Watchers

Tomasz Ad avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.