From 6b1864a048ffb9343d4658ec11c32494d7f038db Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Tue, 30 Aug 2005 20:53:32 +0000 Subject: Move switchtower to the tools directory, to decouple it from rails git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2074 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- switchtower/examples/sample.rb | 113 ----------------------------------------- 1 file changed, 113 deletions(-) delete mode 100644 switchtower/examples/sample.rb (limited to 'switchtower/examples') diff --git a/switchtower/examples/sample.rb b/switchtower/examples/sample.rb deleted file mode 100644 index 94d430430a..0000000000 --- a/switchtower/examples/sample.rb +++ /dev/null @@ -1,113 +0,0 @@ -# You must always specify the application and repository for every recipe. The -# repository must be the URL of the repository you want this recipe to -# correspond to. The deploy_to path must be the path on each machine that will -# form the root of the application path. - -set :application, "sample" -set :repository, "http://svn.example.com/#{application}/trunk" - -# The deploy_to path is optional, defaulting to "/u/apps/#{application}". - -set :deploy_to, "/path/to/app/root" - -# The user value is optional, defaulting to user-name of the current user. This -# is the user name that will be used when logging into the deployment boxes. - -set :user, "flippy" - -# By default, the source control module (scm) is set to "subversion". You can -# set it to any supported scm: - -set :scm, :subversion - -# gateway is optional, but allows you to specify the address of a computer that -# will be used to tunnel other requests through, such as when your machines are -# all behind a VPN or something - -set :gateway, "gateway.example.com" - -# You can define any number of roles, each of which contains any number of -# machines. Roles might include such things as :web, or :app, or :db, defining -# what the purpose of each machine is. You can also specify options that can -# be used to single out a specific subset of boxes in a particular role, like -# :primary => true. - -role :web, "www01.example.com", "www02.example.com" -role :app, "app01.example.com", "app02.example.com", "app03.example.com" -role :db, "db01.example.com", :primary => true -role :db, "db02.example.com", "db03.example.com" - -# Define tasks that run on all (or only some) of the machines. You can specify -# a role (or set of roles) that each task should be executed on. You can also -# narrow the set of servers to a subset of a role by specifying options, which -# must match the options given for the servers to select (like :primary => true) - -desc < :db, :only => { :primary => true } do - # the on_rollback handler is only executed if this task is executed within - # a transaction (see below), AND it or a subsequent task fails. - on_rollback { delete "/tmp/dump.sql" } - - run "mysqldump -u theuser -p thedatabase > /tmp/dump.sql" do |ch, stream, out| - ch.send_data "thepassword\n" if out =~ /^Enter password:/ - end -end - -# Tasks may take advantage of several different helper methods to interact -# with the remote server(s). These are: -# -# * run(command, options={}, &block): execute the given command on all servers -# associated with the current task, in parallel. The block, if given, should -# accept three parameters: the communication channel, a symbol identifying the -# type of stream (:err or :out), and the data. The block is invoked for all -# output from the command, allowing you to inspect output and act -# accordingly. -# * sudo(command, options={}, &block): same as run, but it executes the command -# via sudo. -# * delete(path, options={}): deletes the given file or directory from all -# associated servers. If :recursive => true is given in the options, the -# delete uses "rm -rf" instead of "rm -f". -# * put(buffer, path, options={}): creates or overwrites a file at "path" on -# all associated servers, populating it with the contents of "buffer". You -# can specify :mode as an integer value, which will be used to set the mode -# on the file. -# * render(template, options={}) or render(options={}): renders the given -# template and returns a string. Alternatively, if the :template key is given, -# it will be treated as the contents of the template to render. Any other keys -# are treated as local variables, which are made available to the (ERb) -# template. - -desc "Demonstrates the various helper methods available to recipes." -task :helper_demo do - # "setup" is a standard task which sets up the directory structure on the - # remote servers. It is a good idea to run the "setup" task at least once - # at the beginning of your app's lifetime (it is non-destructive). - setup - - buffer = render("maintenance.rhtml", :deadline => ENV['UNTIL']) - put buffer, "#{shared_path}/system/maintenance.html", :mode => 0644 - sudo "killall -USR1 dispatch.fcgi" - run "#{release_path}/script/spin" - delete "#{shared_path}/system/maintenance.html" -end - -# You can use "transaction" to indicate that if any of the tasks within it fail, -# all should be rolled back (for each task that specifies an on_rollback -# handler). - -desc "A task demonstrating the use of transactions." -task :long_deploy do - transaction do - update_code - disable_web - symlink - migrate - end - - restart - enable_web -end -- cgit v1.2.3