Slashdot Mirror


Open Source Distributed Shell Tools?

ColonelForbin74 asks: "While some may assume that most larger server clusters run advanced / custom software(i.e. Beowulf, cfengine, OSCAR), many of those stuck in the not-research-this-site-runs-production world know this simply isn't the case. Many people like myself are working with medium-to-large scale clusters with little help other than shell for() loops and some SSH trusted keys. What application-level tools are out there that might help SysAdmin / AppSupport types like myself run commands across a given cluster, push files out, etc? In my desperation to have some sort of tool in my toolbox, I've actually created one. However, I have a hard time believing this is the best thing out there, and would appreciate all the ideas and links I can get!"

31 comments

  1. First Post! I DID IT!!! by sithkhan · · Score: -1

    Angry Dragon Immediately after you blow your load in a girl's mouth, smack the back of her head and make it come out her nose. When she gets up she'll look like an angry dragon. Arabian Goggles A "seldom-seen" maneuver when you put your testicles over her eye sockets while getting head. (Picture it: ass on forehead) It may be anatomically impossible, but what the fuck else is new. The Bait N' Tackle The sailors used this one in the old Navy days. Before you go off for a long, lonely voyage, get yourself a tall jar and fill it completely with earthworms. When you get lonely, open the jar and fuck away. The earthworms will provide some slithery stimulation, and your protein load will keep them nicely fed. Gone fishing! Ballsacking Takes some luck of the gene pool, but if you're able to do it, always great fun. While you are straddling her, take your nutsack and spread it out over her face like pizza dough. Bear Claw A synonym for extremely large pussy lips. Beef Curtain The shanked out remains of the labia after being stretched like Play-Doh from an hour or so of jimmy-jam. Beer Dick This is what most guys get after a good night of drinking. They tend to fuck anything with a pussy while experiencing beer dick. Blumpy You need to find a real tramp to do this right. It involves having her sucking you off while you are on the shitter. Boston Steamer The act of ending a relationship by depositing a steaming pile of feces on the back of a sleeping lover after a night of passion followed by a hasty departure. Brazilian Flapjack The act of Blowing one's love sauce on their partners sternum and letting her bake in the sun. The partner will then return later and peel off the cumjack and feed it to the craving slut. The Bronco You start by going doggy style and then just when she is really enjoying it, you grab her tits as tight as possible and yell another girls name. This gives you the feeling of riding a wild bronco as she desperately tries to buck you off. Brown Bagging It Sometimes you meet a girl with a body like there's no tomorrow but a face like a mangy dog. Don't let that body go to waste and let her hideousness stop you from fucking her though. Just draw the smiley face on a brown paper bag, place it over her head, and fuck away while keeping your composure and piece of mind. Brown Necktie You're about halfway through ass-wrecking a chick, and instead of filling up her keister with your demonseed, you pull out and proceed to tittie fuck her, leaving a brown streak between the funbags. Brunski When a man puts his face between a woman's breasts and quickly moves his head back and forth while saying "Brunski" in a very drawn out and exaggerated manner. (There are many other variant names.) The Bullwinkle The sign given to a friend in hiding while doggie styling' some chick. It is performed by placing both hands over the head, with palms facing out and waving wildly. Can be supplemented by shouting "Hey Rocky." (Make sure to use appropriate Bullwinkle voice tone.) Butter Face When you see a chick with an awesome body, "but her face", is nasty. Cajun Hot Stick The act in which the cock is taken out of her pooper and slathered in the pool of dip spit in the small of her back and then re-inserted. Christmas Turkey Carver The act of sitting carefully behind your prone partner, inserting three fingers in her vagina, one in her ass, and voraciously pumping your digits in and out, maintaining a perfect L-bend at the elbow, and using only your rotator cuff as a power pivot The Canine Special Liberally apply peanut butter to your dick and call over the family dog. Lick Ubu lick. Good Dog. Arf! The Carpet Cleaner While banging a girl doggy style, tie her arms behind her back, lift up her hips, and run around the room pushing her face first across the carpet. Not recommended with large women. The Chili Dog When you take a hot dump on a girl's tits and then proceed to titty fuck her. Chocolate Pizza Happily discovering hemorrhoids while eating a shitty brown eye. Chocolate Pizza Milkshake (added 2/10/02) Felching s

    --

    is it that bad seein a hot chick again? if i see a hot chick walkin down the hall i dont say "repost"
  2. Try this for a start by epsalon · · Score: 4, Informative

    A lecture from the Haifa Linux Club about the subject.

  3. The bitcluster tools are useful by Kraken137 · · Score: 5, Informative
    1. Re:The bitcluster tools are useful by Kraken137 · · Score: 2

      I forgot to mention, there IS a tool called cssh included with the bitcluster tools, which works like ctelnet... it just isn't mentioned on the page, I believe.

  4. Whatever happened to... by Bandito · · Score: 4, Informative

    DSH? I used it awhile back and was pretty happy with it.

    It was a bit unstable, but that was almost a year ago. Give it a try.

    1. Re:Whatever happened to... by ensor · · Score: 1

      i've had good luck with the the other dsh.....

  5. How about pdsh? by cinnerz · · Score: 4, Informative

    PDSH works pretty well in my experience. It's pretty good to run commands on the nodes and pdcp can copy files out.

    1. Re:How about pdsh? by rasjani · · Score: 1

      Pdsh doesnt yet fully support ssh. For command executiong as rsh's replacement, yes but for rcp no. The newest build of pdsh doesnt even compile right with --with-ssh without patching.

      --
      yush
  6. herdtools by MacJedi · · Score: 3, Informative
    herdtools

    /joeyo

    --
    2^5
  7. clusterit? by Anonymous Coward · · Score: 0

    Well on FreeBSD I installed the net/clusterit port, it's really wimpy (just dsh and multi-copy type stuff) and buggy, but I really haven't found anything substantially better.

    cfengine is closest to what I'd like, but there's something *weird* about it, and I just can't get into it.

    But what'd I'd like is to be able to divide my servers into multiple overlapping classes (like, ones with mail servers, ones with DNS; ones with Red HAt, ones with FreeBSD4; ones in rack 1, ones in rack 2; etc...) and configure certain tasks (DNS server on Red HAt: do this... etc). tasks could get output or edit files or do whatever I'd like.

    then I can call a task from cron or from the command line on the master machine and do my work.

    any tips are appreciated...

  8. heh... funny you should mention this.... by FireChipmunk · · Score: 1, Funny

    We have many extra Windows XP machines around here, which idle around most of the time.

    We needed some machines for running stress testing against our network servers, but we didn't have enough horse power to run a pure linux based clustering/distributed stress client.

    I looked around abit, like you, and found there wasn't much.

    Because of this I have written some hackish python code that basicly creates a cross platform distributed and self-updating cluster.

    We use it to run our cross platform stress test application across many machines, without forcing these machines to be formated to linux.. etc.

    I plan on releasing these scripts as open source sometime soon.

    Look for them on Freshmeat and http://open.cyanworlds.com

    -chip

    1. Re:heh... funny you should mention this.... by babbage · · Score: 2, Funny
      Interestingly, that sort of thing seems to be what Python was invented for: it was the control language for the Amoeba distributed OS, as described by Guido van Rossum himself:
      Guido van Rossum: In 1986 I moved to a different project at CWI, the Amoeba project. Amoeba was a distributed operating system. By the late 1980s we found we needed a scripting language. I had a large degree of freedom on that project to start my own mini project within the scope of what we were doing.
      I don't know if you knew about this stuff in advance, but working on distributed code was apparently a great way to play into Python's strengths-by-design. Amoeba has long been one of those neat little esoteric systems that I've wanted to play with (also including Plan9/Inferno), but have never had the chance to. I wonder if it ever got any traction outside of research circles...
    2. Re:heh... funny you should mention this.... by costas · · Score: 2, Funny

      Sounds very interesting... are you by any chance using IPython as the shell? if not, it might worth a look, it basically makes the Python CLI a super-shell, so it sounds like you could insert your distributed code under the IPython layer and get a distributed super-shell :-)

  9. Distribulator by The+Clockwork+Troll · · Score: 0, Informative
    We are big fans of Dace's Distribulator.

    We find it to be an improvement over simple shell tools for typical cluster administration tasks.

    --

    There are no karma whores, only moderation johns
    1. Re:Distribulator by eht · · Score: 1

      I've actually created one.

      How is the parent informative, it's the same link the submitter mentioned.

    2. Re:Distribulator by Anonymous Coward · · Score: 0

      You've been here for how long?

  10. tools I've used in the past... by hubertf · · Score: 1

    During the Munich IETF 1997(?) I used rdist (part of Irix) to copy files from one machine to 40 others, as someone thought NFS was not an option.

    When I had a set of (permanently running...) Unix workstations last, I used sh for-loops and ssh to run commands.

    During another cluster project I was happy to use NFS to share files, and used rsh over ssh as it was ways faster.

    Oh, and if you ever need to render mpegs from jpegs, check out the UCB's excellent "mpeg_encode", which does all the load balancing on a set of machines all by itself. Yumm!

    - Hubert

  11. Rocks Cluster Distribution by tellurian · · Score: 3, Informative

    I like the Rocks Cluster Distribution. It is above all simple to use, well documented, and stable.

    1. Re:Rocks Cluster Distribution by tellurian · · Score: 2, Informative
      I guess I forgot to mention its distributed shell tool :-)

      It's called "cluster-fork".

      For example:

      • # cluster-fork rpm -Uvh foo.rpm
    2. Re:Rocks Cluster Distribution by JohnnyO · · Score: 1

      IMO it is much better than the Scissors Cluster Distribution, but I find it lacking compared to Paper Cluster Distribution.

  12. Roll-your-own works fine by photon317 · · Score: 1


    There's really not all that much to it... bundling some scripting in the language of your choice around parallel ssh session is a pretty decent solution that most people seem to arrive at.

    --
    11*43+456^2
  13. Tivoli! by Anonymous Coward · · Score: 1, Funny

    If you got a few million to spare, Tivoli does anything!

  14. radmind by More+Trouble · · Score: 2, Informative

    You might try radmind. It's used pretty popularly in the Mac OS X world, but was originally written for Solaris, Linux, and *BSD. There's a reasonably sized community using it, and a supportive mailing list.

    :w

  15. SUN's grid engine by martin · · Score: 3, Informative

    is free for both solaris (Sparc & x86) and Linux..

    http://wwws.sun.com/software/gridware/sge_get.ht ml

    grid engines 'tend' to be more useful as they can balance the load better to non-dedicated hosts. Just my view, but saves building a dedicated cluster with all these 2ghz pentiums on the desktop..(assuming you have linux on the desktop of course)

    --

  16. Not quite what you want, but... by abulafia · · Score: 2, Informative

    CFengine rocks. It isn't a distributed shell, but for configuration management and remote automated changes, you can't beat it.

    --
    I forget what 8 was for.
  17. We created a "load balancing" parallel SSH tool. by kcurrie · · Score: 4, Interesting

    Where I work (a LARGE networking company that makes all kinds of networking hardware) a co-worker and I created multiple parallel SSH tools which enable you to run hundreds to thousands of concurrent outgoing sessions, depending on hardware. We have not yet had the cycles to look into open sourcing it, but hope to.

    I can share the basics of it here though, which should enable somebody else to easily build their own. On a day to day basis we needed to be able to run commands on 10,000+ Solaris and Linux boxes, and wanted to use SSH key authentication, but not keys with a null passphrase (as if the private key was stolen, major security implications present themselves :-) ) . The only way to do this (other than having some type of expect type program typing in the passphrase for you) is to use the ssh-agent. The problem with the ssh-agent is that is simply does not have the ability to authenticate more than say 20+ ssh sessions as once (depending on machine load, etc). What happens when too many ssh sessions attempt to authenticate against the ssh-agent is that you get many authentication failures due to timeouts. There are some hacks you can do to the ssh source code that will increase the number of times ssh will attempt to contact the agent, as well as the delay between attempts. We've done these hacks, but they still were nowhere near enough.
    The solution instead is to use MULTIPLE ssh-agents, and load balance between them. We wrote a tool that will prompt for our key passphrase and then load say 100 ssh-agents with that key loaded. When it starts the agents it records the variables SSH_AUTH_SOCK and SSH_AGENT_PID for each agent in a single file. We then have shell scripts wrapped around ssh commands that just randomly pick an agent to connect to, effectively load balancing.
    We run this whole thing on an OpenMosix cluster, which allows the ssh-agents and ssh processes to migrate across the machines once they start to use too much CPU time on their current node. We've found that Linux boxes seem to be much faster for SSH operations than Solaris (sparc) boxes, BTW.
    We have also written a parallel ssh tool that works similarly to others discussed here (and others NOT discussed here, like Ed Hill's clsh which in a previous life I used extensively), except our tool has a couple of other major features which (IMHO) are required in an enterprise environment. The biggest thing that we've found is that when working on boxes in the far reaches of the world, we cannot assume that any common group of NFS mounts will exist, or work properly when we need them to. If you cannot be sure what remote mounts are available, how can you run scripts on the remote box? This prompted us to make our program have the ability to both run perl code directly fed to it, as well as (basically) remotely deliver scripts for running and delete them afterwards. So if we've written an administrative script called foo.sh, our tool will basically pipe the script across a SSH session to the remote end and run it, usually never having to touch the remote disk at all. This is VERY useful because when talking about 10k+ boxes, many of which are desktops, you can never be sure which partitions will be full.

    Using our parallel ssh tool, along with the ssh-agent load balancing and a 3 node OpenMosix cluster we've been able to run 1000 outgoing ssh sessions without issues. This means if you want to change root passwords on 10k boxes it only takes slightly longer than changing passwords on 10 boxes. A real time saver, to say the least :-)

    Comments anyone?

    BTW, is anybody using any hacks of OpenSSH to work similarly to sudo for giving out root access?

    --
    -- I speak only for myself.
  18. Re:We created a "load balancing" parallel SSH tool by Anonymous Coward · · Score: 0

    That load-balanced multiple ssh-agent idea is neat.

  19. ghosts by jmason · · Score: 2, Informative

    'ghosts' is a command which has been included with perl in the 'eg' directory since at least 4.036. It does this effectively, allowing you to do

    gsh somemachines somecommand

    or

    gcp somefile somemachines:/etc/newfile

    worked great, last time I had to admin a large network (about 5 years ago ;). *EXTREMELY* simple, too.

    http://outflux.net/unix/software/gsh/ seems to be an updating of this tool.

  20. Larry McVoy's tools? No thanks. by Anonymous Coward · · Score: 0

    I'd rather eat my own vomit.

  21. pconsole and DSH by Jesse+Becker · · Score: 1
    I'm a read fan of two programs:

    DSH is nice for relatively small things that need to get run everywhere, and has an interactive mode that works fairly well. It works from any command line.

    Pconsole on the other hand requires X, and creates a seperate terminal window for every host you are connecting to. There is a small 'command' window that echos everything you type to all of the other terminals under it's control. If you have ever seen Sun's "Cluster Management Tool" from a few years ago, this is very similar. It can also attach to existing sessions as well.

  22. Gnu Queue? by Anonymous Coward · · Score: 0

    Would this work? http://sourceforge.net/projects/queue/