Awesome HTH!

Sent from my Nexus 4.
On 14 Jan 2014 17:14, "Michael" <[email protected]> wrote:

> https://github.com/srbartlett/elbow/pull/3
>
> Thanks Lee.  That was the kick I needed.
>
> On Monday, January 13, 2014 2:46:37 PM UTC-6, Lee Hambley wrote:
>>
>> I can't see the value of the elastic_load_balancer function, if all it
>> does it call server.
>>
>> You haven't included your module into the main scope, you have included
>> it into Capistrano::Configuration, where it should, if anywhere be in
>> Capistrano::DSL.
>>
>> To programatically define servers, just call `server()` from anywhere
>> which has Capistrano::DSL included.
>>
>> (I think that's right, anyway, I have't ever actually tried, but the
>> top-level stuff like release_path and on() and friends all come from the
>> DSL module being included in to the main scope)
>>
>> Lee Hambley
>> --
>> http://lee.hambley.name/
>> +49 (0) 170 298 5667
>>
>>
>> On 13 January 2014 18:31, Michael <[email protected]> wrote:
>>
>>> Versions:
>>>
>>>    - Ruby
>>>       - 2.0.0
>>>    - Capistrano
>>>       - 3.0.1
>>>
>>> Does any documentation exist for writing capistrano 3 gems for
>>> programmatically adding servers during deployment?
>>>
>>> I can only find Capistrano 2 gems for doing such tasks.  (
>>> https://github.com/srbartlett/elbow , https://github.com/
>>> tverbiscer/capistrano-asgroup )
>>>
>>> I'm currently testing this:   (The below is a useless example, but
>>> should try to add '127.0.0.1' to the list of servers...)
>>>
>>> root@domU-example:/var/lib/gems/2.0.0/gems/capistrano-
>>> autoscale-0.0.1/lib/capistrano# cat autoscale.rb
>>> require 'aws-sdk'
>>> require 'net/dns'
>>>
>>> ####  The below is old Cap2 syntax...  What is the new equivalent? ####
>>> #Capistrano::Configuration.instance(:must_exist).load do
>>> ### end old syntax (I think) ####
>>>
>>> module Capistrano
>>> class Configuration
>>> module ELB
>>>  def elastic_load_balancer(name, *args)
>>>
>>> hostname = "127.0.0.1"
>>> server(hostname, *args)
>>>  end
>>>
>>> end
>>>
>>> include ELB
>>> end
>>> end
>>>
>>> This just fails with this:
>>>
>>> root@domU-example:~/webapp# cap production deploy --trace
>>> ** Invoke production (first_time)
>>> ** Execute production
>>> ** Invoke load:defaults (first_time)
>>> ** Execute load:defaults
>>> cap aborted!
>>> undefined method `elastic_load_balancer' for main:Object
>>> config/deploy/production.rb:14:in `<top (required)>'
>>> /var/lib/gems/2.0.0/gems/capistrano-3.0.1/lib/capistrano/setup.rb:13:in
>>> `load'
>>> /var/lib/gems/2.0.0/gems/capistrano-3.0.1/lib/capistrano/setup.rb:13:in
>>> `block (2 levels) in <top (required)>'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:236:in `call'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:236:in `block in
>>> execute'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:231:in `each'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:231:in `execute'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:175:in `block in
>>> invoke_with_call_chain'
>>> /usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:168:in
>>> `invoke_with_call_chain'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/task.rb:161:in `invoke'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:149:in
>>> `invoke_task'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:106:in
>>> `block (2 levels) in top_level'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:106:in
>>> `each'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:106:in
>>> `block in top_level'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:115:in
>>> `run_with_threads'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:100:in
>>> `top_level'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:78:in
>>> `block in run'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:165:in
>>> `standard_exception_handling'
>>> /var/lib/gems/2.0.0/gems/rake-10.1.1/lib/rake/application.rb:75:in `run'
>>> /var/lib/gems/2.0.0/gems/capistrano-3.0.1/lib/
>>> capistrano/application.rb:12:in `run'
>>> /var/lib/gems/2.0.0/gems/capistrano-3.0.1/bin/cap:3:in `<top
>>> (required)>'
>>> /usr/local/bin/cap:23:in `load'
>>> /usr/local/bin/cap:23:in `<main>'
>>> Tasks: TOP => production
>>>
>>> Files:
>>>
>>>    - Capfile
>>>
>>> root@domU-example:~/webapp# cat Capfile  | grep -v "^#"
>>> require 'capistrano/setup'
>>>
>>> require 'capistrano/deploy'
>>>
>>> require 'capistrano/bundler'
>>> require 'capistrano/rails/assets'
>>> require 'capistrano/rails/migrations'
>>>
>>> Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
>>>
>>>    - deploy.rb
>>>
>>> root@dom-example:~/webapp# cat config/deploy.rb  | grep -v "^#" | grep
>>> -v "^$"
>>> set :application, 'blog'
>>> set :ssh_options, {:forward_agent => false, keys:
>>> ['/home/deploy/.ssh/private_key'], :paranoid => false}
>>> set :deploy_via, :remote_cache
>>> set :use_sudo, true
>>> set :deploy_to, '/webapp'
>>> set :scm, :git
>>> set :scm_user, :git
>>> namespace :deploy do
>>>   desc 'Restart application'
>>>   task :restart do
>>>     on roles(:app), in: :sequence, wait: 5 do
>>>       # Your restart mechanism here, for example:
>>>       if test("[ ! -d " + release_path.join("tmp").to_s + " ]")
>>>         execute "mkdir ", release_path.join("tmp")
>>>       end
>>>       execute :touch, release_path.join('tmp/restart.txt')
>>>     end
>>>   end
>>>   after :restart, :clear_cache do
>>>     on roles(:web), in: :groups, limit: 3, wait: 10 do
>>>       # Here we can do anything such as:
>>>       # within release_path do
>>>       #   execute :rake, 'cache:clear'
>>>       # end
>>>     end
>>>   end
>>>   after :finishing, 'deploy:cleanup'
>>> end
>>>
>>>    - Stage files (production.rb, staging.rb)
>>>
>>> root@domU-example:~/webapp/config/deploy/# cat production.rb  | grep -v
>>> "^#"
>>> require 'capistrano/autoscale'
>>> set :rails_env, "production"
>>>
>>> set :stage, :production
>>> set :user, 'deploy'
>>>
>>> elastic_load_balancer "example-elb.example.com", :web
>>>
>>>
>>>
>>> Any pointers in the right direction would be greatly appreciated.  I've
>>> no issues reading as much documentation as you send me, but I haven't found
>>> this one yet....
>>>
>>> -- Michael
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Capistrano" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web, visit https://groups.google.com/d/
>>> msgid/capistrano/68f5e1b6-7b3b-4e97-a856-02e9614f341e%40googlegroups.com
>>> .
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "Capistrano" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/capistrano/826eadad-829c-465d-937a-0186df5c7bbc%40googlegroups.com
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/CAN_%2BVLWjP275i61_WhEJCbdwycuUk6%2BZ93XU9%3D2ht4PgJ5azfw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to