Ruby in Systems Administration

I was just wondering if anyone had some really cool uses for Ruby in Systems
Administration. Some examples of what I would consider to be really cool is
stuff like using drb or webrick to poll system status, gather inventory
information, etc. Useful ways to interact with multiple systems. Ways to
push system changes out to hundreds of servers. Etc, etc… I know there’s
some stuff on the wiki ( http://www.rubygarden.org/ruby?RealWorldRuby ) as
well.

···

Express yourself with MSN Messenger 6.0 – download now!
http://www.msnmessenger-download.com/tracking/reach_general

for some.

    Hugh
···

On Thu, 11 Sep 2003, Mike Wilson wrote:

I was just wondering if anyone had some really cool uses for Ruby
in Systems Administration. Some examples of what I would consider

Though not exactly what you’re looking for, Rconf is an example of a
working system administration framework, take a look at Alexander
Bokovoy’s slides from EuRuKo 2003:

···

On Thu, Sep 11, 2003 at 11:19:43PM +0900, Mike Wilson wrote:

I was just wondering if anyone had some really cool uses for Ruby in
Systems Administration.


Dmitry Borodaenko

There is always Expect

[root@hoho2 pty]# pwd
/usr/local/src/ruby/ruby-1.8.0/ext/pty

[root@hoho2 pty]# cat expect_sample.rb

···

#
# sample program of expect.rb
#
# by A. Ito
#
# This program reports the latest version of ruby interpreter
# by connecting to ftp server at netlab.co.jp.
#
require 'pty'
require 'expect'

fnames =
PTY.spawn("ftp ftp.netlab.co.jp") do
  >r_f,w_f,pid|
  w_f.sync = true

  $expect_verbose = true

  r_f.expect(/^Name.*: /) do
    w_f.print "ftp\n"
  end

  if !ENV['USER'].nil?
    username = ENV['USER']
  elsif !ENV['LOGNAME'].nil?
    username = ENV['LOGNAME']
  else
    username = 'guest'
  end

  r_f.expect('word:') do
    w_f.print username+"@\n"
  end
  r_f.expect("ftp> ") do
    w_f.print "cd pub/lang/ruby\n"
  end
  r_f.expect("ftp> ") do
    w_f.print "dir\n"
  end

  r_f.expect("ftp> ") do |output|
    for x in output[0].split("\n")
      if x =~ /(ruby.*\.tar\.gz)/ then
         fnames.push $1
      end
    end
  end
  begin
    w_f.print "quit\n"
  rescue
  end
end

print "The latest ruby interpreter is "
print fnames.sort.pop
print "\n"
[root@hoho2 pty]#

I was just wondering if anyone had some really cool uses for Ruby in Systems
Administration. Some examples of what I would consider to be really cool is
stuff like using drb or webrick to poll system status, gather inventory
information, etc. Useful ways to interact with multiple systems. Ways to
push system changes out to hundreds of servers. Etc, etc... I know there's
some stuff on the wiki ( http://www.rubygarden.org/ruby?RealWorldRuby ) as
well.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You could try to reach jfontan at #ruby-lang (irc.freenode.net, European
timezone). He’s using drb to monitor a big cluster and might want to
comment on his experiences.

···

On Thu, Sep 11, 2003 at 11:19:43PM +0900, Mike Wilson wrote:

I was just wondering if anyone had some really cool uses for Ruby in
Systems Administration. Some examples of what I would consider to be
really cool is stuff like using drb or webrick to poll system status,

_ _

__ __ | | ___ _ __ ___ __ _ _ __
'_ \ / | __/ __| '_ _ \ / ` | ’ \
) | (| | |
__ \ | | | | | (| | | | |
.__/ _,
|_|/| || ||_,|| |_|
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

No, that’s wrong too. Now there’s a race condition between the rm and
the mv. Hmm, I need more coffee.
– Guy Maor on Debian Bug#25228

Take a look at:
http://www.20six.co.uk/rbermejo

It need some improvements, but at the moment it has been very useful to
take control of 800 machines.
*ix → net/telnet, sockets
win → drb

If somebody is interested on it, I will put it in raa/rubyforge.

···

Rodrigo Bermejo

Mike Wilson wrote:

I was just wondering if anyone had some really cool uses for Ruby in
Systems Administration. Some examples of what I would consider to be
really cool is stuff like using drb or webrick to poll system status,
gather inventory information, etc. Useful ways to interact with
multiple systems. Ways to push system changes out to hundreds of
servers. Etc, etc… I know there’s some stuff on the wiki (
http://www.rubygarden.org/ruby?RealWorldRuby ) as well.


Express yourself with MSN Messenger 6.0 – download now!
http://www.msnmessenger-download.com/tracking/reach_general

Nifty! I was actually planning to look into webrick and write this over
the weekend, as a quick way of sharing a directory with someone. You
should put that up somewhere on the wiki.

martin

···

Dave Brown dagbrown@lart.ca wrote:

Well, I wrote a little script called “quickhttpd” which fires off
a web server on some high port which serves up documents in the
current directory. This is very handy for all those software

Take a look at:
http://www.20six.co.uk/rbermejo

It need some improvements, but at the moment it has been very useful to
take control of 800 machines.
*ix → net/telnet, sockets win → drb

If somebody is interested on it, I will put it in raa/rubyforge.

BTW: I sent this post for 1st time 1hr ago…let see if it works now

···

Rodrigo Bermejo

Mauricio Fernández wrote:

On Thu, Sep 11, 2003 at 11:19:43PM +0900, Mike Wilson wrote:

I was just wondering if anyone had some really cool uses for Ruby in
Systems Administration. Some examples of what I would consider to be
really cool is stuff like using drb or webrick to poll system status,

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

You could try to reach jfontan at #ruby-lang (irc.freenode.net, European
timezone). He’s using drb to monitor a big cluster and might want to
comment on his experiences.


General Electric - CIAT
Advanced Engineering Center


Rodrigo Bermejo
Information Technologies.
Dial-comm : *879-0644
Phone :(+52) 442-196-0644
mailto:rodrigo.bermejo@ps.ge.com