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.