Skip to content

rphub/syncwrap

 
 

Repository files navigation

A generalized and modular set of provisioning and deployment routines. The Rake-centric Vlad and not-actually-Rake Capistrano both suffer from lack of objects, e.g. the ability to customize and mix-in behavior. SyncWrap offers an Object/Module system that can be used with either.

  • Multi-line shell support in SyncWrap::Common#run, SyncWrap::Common#sudo for more natural script embedding

  • SyncWrap::Common::rput offers some useful rsync magic, like setting the owner of placed remote files

  • Platform differences are factored out into platform-specific modules

  • SyncWrap::RemoteTask rake-remote_task adapter (see synopsis below)

  • Gem install utilities. e.g. SyncWrap::JRuby#jruby_check_gem, SyncWrap::JRuby#jruby_install_gem

Currently the following provisions are provided:

  • SyncWrap::AWS for EC2 instances, mdraid over EBS volumes, and Route53 DNS updates.

  • SyncWrap::PostgreSQL

  • Complete SyncWrap::Java, SyncWrap::Hashdot, SyncWrap::JRuby stack

  • SyncWrap::Iyyov job scheduler and process monitor

  • SyncWrap::UserRun for setup of a run user for deployed daemons, jobs and var directories.

For example, in your Rakefile with the SyncWrap::RemoteTask adapter:

class SyncWrapper

  # Include these support modules for the tasks below, or include
  # your own.

  include SyncWrap::Java
  include SyncWrap::Hashdot
  include SyncWrap::JRuby
  include SyncWrap::Ubuntu

  include SyncWrap::RemoteTask

  def initialize
    super
    self.common_prefix = '/usr/local'
  end

  def define_tasks
    desc "Combined Java, Hashdot, JRuby Deployment"
    remote_task :jruby_deploy do
      java_install
      hashdot_install
      jruby_install
    end
  end

  # Override any of the support methods as needed.

end

SyncWrapper.new.define_tasks

Copyright © 2011-2013 David Kellum

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at:

www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors