m.(A.TT)/er
Service! - Created Last Year, Delivered This Year
Wednesday 05/14/14 10:12:16 PM

The latest Massh OSX Package is : massh-2.0-58.zip

The latest Ambit OSX Package is : ambit-2.0-40.zip

I finally got around to providing a link to the OSX packages that I generated for Massh & Ambit about a year ago for my friend Felipe. Failing to be Johnny-On-The-Spot for stuff that ALREADY EXISTS and therefore required almost no effort to provide is obviously LAME. Srsly, I got no excuse and wouldn't put up with one from anyone else, so....

In other news: I've had Massh & Ambit updates in the can for months but sadly never find the time to do an actual release (Freshmeat, Sourceforge updates, announcements, packages, documentation, writeups, new features & some douchy bragging). I've had new ideas for Massh, Ambit & a bunch of stuff that I keep putting off releasing for a while as well. Hopefully soon I will get some of it out there. As for those that have sent requests, made suggestions and pointed out bugs, I have not forgotten about any of you and will be sure to either incorporate your *stuff* or (at very least explain) why your *stuff* wasn't incorporated.

Release Notes
Monday 08/08/11 11:54:56 AM

Complete Rewrite

Cleaner, More Efficient, Faster, More Modular

Divorced From Ambit

Ambit was always going to become general purpose tool and not beholden to Massh, regardless of the fact that Ambit wouldn't exist without Massh's dire need for it. Massh no longer cares what supplies it with an enumerated list of hosts. Additionally Massh has an option for specifying what (if not Ambit) will enumerate hosts. In the near future both NIS NetGroups and Genders Host Ranges will be tested and supported.

Simplified CLI

Massh commands are shorter, easier to remember, devoid of the typical dashed-option minefield and grammatically self evident.

Pull Functionality

Pull the same file from hundreds of hosts in seconds - each file gets stored in hostname derived directories.

Script Push and Run Is Now ScriptPushAndRun

No longer is this a two (sometimes three) step process for each host (push, then run, then cleanup). Massh'ed scripts are now piped over the single (per host) SSH connection for execution, but never stored on the remote host.

Configurable Options

System wide and User specific options (# of Parallel connections, Massh run Timeout, Debug, SSHLogLevel, etc.) can be changed via simple dialogues.

Short Commands

Add shortening or abbreviating to the already leaner cleaner CLI syntax (massh list options == massh ls opts).

Connection Persistence

If Massh is run in combination with OpenSSH >5.6 it will adhere to the following options if set : ControlMaster ControlPath ControlPersist. When these options are set Massh is able to achieve sub-second results to hundreds of hosts (results will vary - how cheesy does that sound?).

Multi-line Output Separator

Massh continues to stand apart when it comes to perfectly sequenced, grouped, multi-line output by adding an option for clear separation between each host's output.

Configurable Default Behavior

The SubCommand option provides the ability to lock in Massh's default behavior (verbose [full output], push, execute [script], etc.). It's also another way to further simplify/shorten Massh commands.

Now 100% More Man

Massh now comes with a man page in addition to the default help txt (massh [ help | -h | --help ]) and the documentation that is being continually updated here on this site.

Go ahead, you know you want to check out MAN MASSH ;^)

Release Notes
Monday 08/08/11 11:55:52 AM

Complete Rewrite

Cleaner, More Efficient, Faster, More Modular.

Network HostGroups

In addition to Ambit being able to reference User Specific and System Level HostGroups it can now enumerate hosts that are defined, presented and referenced on/over the network. Ambit's 'Domain' option allows for the specifying a DNS domain that Ambit will query for DNS TXT records that contain Fully Qualified Domain Names or Ambit expandable strings. The choice of TXT records in DNS was initially trivial. Now that choice has proven to be a very fortuitous (hosts and host groupings are manged in the same place - TXT records are very flexible).

Divorced From Massh

Ambit began life as a purpose-built hostname enumerator and host string expander for Massh.

Command Expansion plus Execution

If Ambit is passed a command it will attempt to expand it in the same manner that it expands 'host strings', run each iteration of the expanded command, one at a time (think 'for loop'). Command Expansion and Execution augments Bash Brace Expansion by being able to both expand and execute commands that Brace Expansion often can't.

HostGroup Location plus Format Changes

System HostGroups now default to /var/ambit/hosts - User HostGroups default to $HOME/.ambit/hosts. HostGroup files are no longer prefixed with 'hosts'. HostGroup files need to have the first three lines formatted in a specific way in order to show up in Ambit's HostGroup listings.

Colon's No Longer Concatenate Multiple HostGroups

In the past colons were used to combine more than one HostGroup on the command line with the result being Ambit output consisting of all hosts from all colon separated groups (ex. webservers:dbservers:appservers). This is now achieved using a typical Ambit expandable string (ex. [web,db,app]servers).

HostGroup Control

Ambit now provides simple dialogues for quickly creating, editing, listing and deleting User and System HostGroups.

OPTION CONTROLS

Ambit also provides the ability to edit, override, list and delete options that were previously provided with a dashed option on the command line.

SPECIAL HOSTGROUP 'down'

By default Ambit creates the System HostGroup 'down' (with a blank file /var/ambit/hosts/down) that should be populated with any hosts either known to be down or needing to be avoided. In order to ensure user choice Ambit will not honor hosts in /var/ambit/hosts/down without the existence of $HOME/.ambit/hosts/down.

NOW 100% MORE MAN

Ambit now comes with a man page in addition to the default help txt (ambit [ help | -h | --help ]) and the documentation that is being continually updated @ http://m.a.tt/er/ambit.

Part Deux
Thursday 08/04/11 08:35:38 AM

Here's a short video that demonstrates the improved performance of the latest releases of Massh.

Download full sized video: massh-is-fast.mov

I Thought This Was What Pens Were For
Tuesday 07/26/11 04:22:59 AM

A couple months back I put all my *fun* projects on hold for a day or two in order to finally deal with something that was becoming a huge waste of time (not to mention a pain in the ass). Of course I am referring to bathing...err I mean, manually building and deploying packages to my environment - specifically RPM's. I was able to work out something that tracks revision updates from Subversion, updates the local copy for projects that are updated, {cleans,readies} a build tree, builds an RPM and finally copies it to the directory where some Yum automation is happening. One of the slick things I managed to pull off was the establishment of a single RPM spec template that I use to automatically generate spec files for all projects (8 of them at the moment). I really like not having to deal with spec files anymore.

Anyway, the last bit of functionality that I needed to incorportate into my SARGENT BADASS auto packaging extravaganza, was the ability to automate the signing of all packages with GnuPG. I was able to finally work this out last night and in celebration I am posting my key for the world to ignore:

http://m.a.tt/er/RPM-GPG-KEY-matter

In order for RPM to verify that the package you have was signed by me (and therefore AWESOME or something) you will need to import my key into your RPM database:

outbreakmonkey $ sudo rpm --import http://m.a.tt/er/RPM-GPG-KEY-matter
outbreakmonkey $ 
Sorta Like: Cold Beer, Sold Here
Thursday 08/04/11 07:25:22 AM

New versions of Massh and Ambit (both completely re-designed) will be available in the next day or two. Some of the changes have come in the area of performance. Below is an example of Massh'in to ~200 hosts and running uname in less than a second - 0.748s to be exact.

$ time massh west200 uname -rpo
westhost1 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost10 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost100 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost101 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost102 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost103 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost104 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost105 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost106 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost107 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost108 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost109 : 2.6.9-34.ELsmp x86_64 GNU/Linux
westhost11 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost110 : 2.6.9-34.ELsmp x86_64 GNU/Linux
westhost111 : 2.6.9-34.ELsmp x86_64 GNU/Linux
westhost112 : 2.6.9-34.ELsmp x86_64 GNU/Linux
westhost113 : 2.6.9-22.ELsmp i686 GNU/Linux
westhost114 : 2.6.9-22.ELsmp i686 GNU/Linux
westhost117 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost118 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost119 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost12 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost120 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost121 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost122 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost123 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost124 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost125 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost126 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost127 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost128 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost129 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost13 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost130 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost131 : 2.6.9-67.ELsmp i686 GNU/Linux
westhost132 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost133 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost134 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost135 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost136 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost137 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost138 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost139 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost14 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost140 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost141 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost142 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost143 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost144 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost145 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost146 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost147 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost148 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost149 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost15 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost150 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost151 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost152 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost153 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost154 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost155 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost156 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost158 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost159 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost16 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost160 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost161 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost162 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost163 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost164 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost165 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost166 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost167 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost168 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost169 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost17 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost170 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost171 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost172 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost173 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost174 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost175 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost176 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost177 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost178 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost179 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost18 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost180 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost181 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost182 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost183 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost184 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost185 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost186 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost187 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost188 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost19 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost190 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost191 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost192 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost193 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost194 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost195 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost196 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost197 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost198 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost199 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost2 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost20 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost200 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost21 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost22 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost23 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost24 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost25 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost26 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost27 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost28 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost29 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost3 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost30 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost31 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost32 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost33 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost35 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost37 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost38 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost39 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost4 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost41 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost42 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost43 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost40 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost44 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost45 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost46 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost47 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost48 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost49 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost50 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost5 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost51 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost52 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost53 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost54 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost55 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost57 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost56 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost58 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost59 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost6 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost60 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost61 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost62 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost63 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost64 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost65 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost66 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost67 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost68 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost69 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost7 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost70 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost72 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost73 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost74 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost75 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost76 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost77 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost79 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost8 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost80 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost82 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost81 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost83 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost84 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost85 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost86 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost87 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost88 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost89 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost9 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost90 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost91 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost92 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost93 : 2.6.9-67.ELsmp x86_64 GNU/Linux
westhost94 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost95 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost96 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost97 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost98 : 2.6.9-34.ELsmp i686 GNU/Linux
westhost99 : 2.6.9-34.ELsmp i686 GNU/Linux

real    0m0.748s
user    0m0.386s
sys     0m0.590s

This site will always use valid XHTML and valid CSS.

© AfterTheTweet.com 2014