aboutsummaryrefslogtreecommitdiff
path: root/vendor/supply_drop/lib/supply_drop/tasks.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/supply_drop/lib/supply_drop/tasks.rb')
-rw-r--r--vendor/supply_drop/lib/supply_drop/tasks.rb96
1 files changed, 96 insertions, 0 deletions
diff --git a/vendor/supply_drop/lib/supply_drop/tasks.rb b/vendor/supply_drop/lib/supply_drop/tasks.rb
new file mode 100644
index 0000000..e73b280
--- /dev/null
+++ b/vendor/supply_drop/lib/supply_drop/tasks.rb
@@ -0,0 +1,96 @@
+Capistrano::Configuration.instance.load do
+ namespace :puppet do
+ set :puppet_source, '.'
+ set :puppet_destination, '/tmp/supply_drop'
+ set :puppet_command, 'puppet apply'
+ set :puppet_lib, lambda { "#{puppet_destination}/modules" }
+ set :puppet_parameters, lambda { puppet_verbose ? '--debug --trace puppet.pp' : 'puppet.pp' }
+ set :puppet_verbose, false
+ set :puppet_excludes, %w(.git .svn)
+ set :puppet_stream_output, false
+ set :puppet_parallel_rsync, true
+ set :puppet_parallel_rsync_pool_size, 10
+ set :puppet_syntax_check, false
+ set :puppet_write_to_file, nil
+ set :puppet_runner, nil
+ set :puppet_lock_file, '/tmp/puppet.lock'
+
+ namespace :bootstrap do
+ desc "installs puppet via rubygems on an osx host"
+ task :osx do
+ if fetch(:use_sudo, true)
+ run "#{sudo} gem install puppet --no-ri --no-rdoc"
+ else
+ run "gem install puppet --no-ri --no-rdoc"
+ end
+ end
+
+ desc "installs puppet via apt on an ubuntu host"
+ task :ubuntu do
+ run "mkdir -p #{puppet_destination}"
+ run "#{sudo} apt-get update"
+ run "#{sudo} apt-get install -y puppet rsync"
+ end
+
+ desc "installs puppet via yum on a centos/red hat host"
+ task :redhat do
+ run "mkdir -p #{puppet_destination}"
+ run "#{sudo} yum -y install puppet rsync"
+ end
+ end
+
+ desc "checks the syntax of all *.pp and *.erb files"
+ task :syntax_check do
+ checker = SupplyDrop::SyntaxChecker.new(puppet_source)
+ logger.info "Sytax Checking..."
+ errors = false
+ checker.validate_puppet_files.each do |file, error|
+ logger.important "Puppet error: #{file}"
+ logger.important error
+ errors = true
+ end
+ checker.validate_templates.each do |file, error|
+ logger.important "Template error: #{file}"
+ logger.important error
+ errors = true
+ end
+ raise "syntax errors" if errors
+ end
+
+ desc "pushes the current puppet configuration to the server"
+ task :update_code, :except => { :nopuppet => true } do
+ syntax_check if puppet_syntax_check
+ supply_drop.rsync
+ end
+
+ desc "runs puppet with --noop flag to show changes"
+ task :noop, :except => { :nopuppet => true } do
+ transaction do
+ on_rollback { supply_drop.unlock }
+ supply_drop.prepare
+ supply_drop.lock
+ update_code
+ supply_drop.noop
+ supply_drop.unlock
+ end
+ end
+
+ desc "applies the current puppet config to the server"
+ task :apply, :except => { :nopuppet => true } do
+ transaction do
+ on_rollback { supply_drop.unlock }
+ supply_drop.prepare
+ supply_drop.lock
+ update_code
+ supply_drop.apply
+ supply_drop.unlock
+ end
+ end
+
+ desc "clears the puppet lockfile on the server."
+ task :remove_lock, :except => { :nopuppet => true} do
+ supply_drop.lock
+ end
+ end
+end
+