I haven't tried this in action but it appears that you could use a
lambda function to define host in the config?
set :test_config, lambda{Time.now}
task :foo do
puts test_config
end
$ cap foo
* executing `foo'
Fri Jul 31 16:31:25 -0400 2009
$ cap foo
* executing `foo'
Fri Jul 31 16:31:31 -0400 2009
just replace Time.now with whatever you need to grab the host name,
presumably some sort of parsing of ec2-describe-instances or something
similar (like using the right_aws gem)
hth,
tim
On 31-Jul-09, at 1:45 AM, johne wrote:
>
> Having trouble trying to dynamically set host on a task at runtime.
> Basically I want to set the host dynamically when task is run. I
> tried set with a block, but no luck.
>
> For example, I want this....
>
> task :mount_ebs, :hosts => host do
> sudo "mkdir /ebs1"
> sudo "mount -t xfs /dev/sdh /ebs1"
> end
>
> where host is dynamically generated at task run time....
>
> any help greatly appreciated
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Capistrano" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.co.uk/group/capistrano?hl=en
-~----------~----~----~----~------~----~------~--~---