[ANN] rubyhitsquad's vlad 1.0.0 Released

Discussion in 'Ruby' started by Ryan Davis, Aug 14, 2007.

  1. Ryan Davis

    Ryan Davis Guest

    vlad version 1.0.0 has been released!

    * <http://rubyhitsquad.com/>
    * <http://rubyforge.org/projects/hitsquad/>

    Vlad the Deployer is pragmatic application deployment automation,
    without mercy. Much like Capistrano, but with 1/10th the
    complexity. Vlad integrates seamlessly with Rake, and uses familiar
    and standard tools like ssh and rsync.

    Impale your application on the heartless spike of the Deployer.

    ## FEATURES/PROBLEMS:

    * Full deployment automation stack.
    * Supports single server deployment with just 4 variables defined.
    * Very few dependencies. All simple.
    * Uses ssh with your ssh settings already in place.
    * Uses rsync for efficient transfers.
    * Run remote commands on one or more servers.
    * Syncs files to one or more servers.
    * Mix and match local and remote tasks.
    * Built on rake. easy.
    * Compatible with all of your tab completion shell script rake-tastic
    goodness.
    * Ships with tests that actually pass.
    * Engine is under 500 lines of code.
    * Super uper simple.
    * Does NOT support Windows right now. Coming soon in 1.1.
    * This is 1.0.0... expect rough edges.

    Changes:

    ## 1.0.0 / 2007-08-04

    * 1 major enhancement
    * Birthday!

    * <http://rubyhitsquad.com/>
    * <http://rubyforge.org/projects/hitsquad/>
     
    Ryan Davis, Aug 14, 2007
    #1
    1. Advertising

  2. Ryan Davis

    Bil Kleb Guest

    Bil Kleb, Aug 14, 2007
    #2
    1. Advertising

  3. Ryan Davis

    Phlip Guest

    Bil Kleb wrote:

    > Reminds me of Victor the Cleaner from the original
    > La Femme Nikita[1].


    That explains the line from the Beastie Boys that rhymes that with
    "illin'est motherf---er from here to Gardina"!

    Gardina is the next city over from Compton, which is renowned for
    internecine crime.

    --
    Phlip
    http://www.oreilly.com/catalog/9780596510657/
    "Test Driven Ajax (on Rails)"
    assert_xpath, assert_javascript, & assert_ajax
     
    Phlip, Aug 14, 2007
    #3
  4. Re: rubyhitsquad's vlad 1.0.0 Released

    On Aug 14, 3:04 am, Ryan Davis <> wrote:
    > vlad version 1.0.0 has been released!
    >


    Congrats! looks really nice.

    sharon
     
    Sharon Rosner, Aug 14, 2007
    #4
  5. Ryan Davis wrote:
    > * Uses ssh with your ssh settings already in place.
    > * Uses rsync for efficient transfers.


    Since you're using the external ssh program, you might consider using
    the -S option in ssh. It lets you pay the setup cost (authentication,
    tcp connect) once per host, rather than once per ssh or rsync
    invocation. Makes a big difference with slow networks or many invocations.

    In rakefiles, it lets you do the following:

    m = SSHMaster.for "some.host.net"
    m.rsync [file1, file2], some_dir_on_that_host
    m.rsync local_dir, remote_dir, "-az" # or other rsync options
    m.ssh some_cmd

    Here's the implementation (needs hacking, I'm sure):

    class SSHMaster
    def initialize sock, host
    @sock, @host = sock, host
    end

    def ssh cmd, &block
    sh "ssh", "-S", @sock, @host, cmd, &block
    end

    DEFAULT_RSYNC_OPTS = ["-Cavz", "--exclude='*.bck'", "--progress"]

    # dst may be "host:foo/bar" or just "foo/bar"
    def rsync src, dst, opts=DEFAULT_RSYNC_OPTS, *optsrest, &block
    src = [src] unless src.is_a?(Array)
    src = FileList[*src]
    opts = [opts] unless opts.is_a?(Array)
    host_dst = (dst =~ /\A#{@host}:/) ? dst : "#{@host}:#{dst}"
    sh "rsync", "--rsh=ssh -S #{@sock}",
    *((opts + optsrest + src + [host_dst]).flatten), &block
    end

    SOCKET_NAME = "ssh_master_for_%r@%h:%p"

    @master = {}

    def self.for host
    master = @master[host]
    unless master
    sock = File.join(ENV["TMPDIR"], SOCKET_NAME)
    cmd = "ssh -M -S #{sock} #{host} 'echo hello; read'"
    master_pipe = IO.popen(cmd, "r+")
    master_pipe.gets
    at_exit do
    master_pipe.close if master_pipe and not master_pipe.closed?
    end

    master = @master[host] = new(sock, host)
    end
    master

    rescue StandardError => ex
    $stderr.puts "Failed to ssh to #{host}: #{ex.message}"
    false
    end
    end

    --
    vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
     
    Joel VanderWerf, Aug 15, 2007
    #5
  6. On 8/15/07, Joel VanderWerf <> wrote:
    > Ryan Davis wrote:
    > > * Uses ssh with your ssh settings already in place.
    > > * Uses rsync for efficient transfers.

    >
    > Since you're using the external ssh program, you might consider using
    > the -S option in ssh. It lets you pay the setup cost (authentication,
    > tcp connect) once per host, rather than once per ssh or rsync
    > invocation. Makes a big difference with slow networks or many invocations.
    >


    We considered this, but there's a bug in the current version of svn
    that breaks when you use ControlMaster. We're going to document how
    to enable it in your ssh config file without breaking anything,
    however. You just can't use it on hosts you intend to 'svn+ssh' into.

    --Wilson.
     
    Wilson Bilkovich, Aug 16, 2007
    #6
  7. Ryan Davis

    Eric Hodel Guest

    On Aug 15, 2007, at 14:29, Joel VanderWerf wrote:
    > Ryan Davis wrote:
    >> * Uses ssh with your ssh settings already in place.
    >> * Uses rsync for efficient transfers.

    >
    > Since you're using the external ssh program, you might consider
    > using the -S option in ssh. It lets you pay the setup cost
    > (authentication, tcp connect) once per host, rather than once per
    > ssh or rsync invocation. Makes a big difference with slow networks
    > or many invocations.


    We're letting people set this per-host with their ~/.ssh/ssh_config.

    Unfortunately some programs (subversion) don't work reliably with the
    ControlMaster setting enabled.

    --
    Poor workers blame their tools. Good workers build better tools. The
    best workers get their tools to do the work for them. -- Syndicate Wars
     
    Eric Hodel, Aug 16, 2007
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ryan Davis
    Replies:
    0
    Views:
    111
    Ryan Davis
    Sep 12, 2007
  2. Ryan Davis

    [ANN] vlad 1.2.0 Released

    Ryan Davis, Jan 15, 2008, in forum: Ruby
    Replies:
    0
    Views:
    95
    Ryan Davis
    Jan 15, 2008
  3. Ryan Davis

    [ANN] vlad 1.3.2 Released (rawr!)

    Ryan Davis, Mar 16, 2009, in forum: Ruby
    Replies:
    0
    Views:
    101
    Ryan Davis
    Mar 16, 2009
  4. John Barnette

    [ANN] vlad-git 2.0.0 Released

    John Barnette, Aug 19, 2009, in forum: Ruby
    Replies:
    0
    Views:
    111
    John Barnette
    Aug 19, 2009
  5. John Barnette

    [ANN] vlad-git 2.1.0 Released

    John Barnette, Oct 14, 2009, in forum: Ruby
    Replies:
    0
    Views:
    93
    John Barnette
    Oct 14, 2009
Loading...

Share This Page