On Fri, Mar 5, 2010 at 10:05 PM, Asif Iqbal <[email protected]> wrote:
> On Fri, Mar 5, 2010 at 5:41 PM, Asif Iqbal <[email protected]> wrote:
>> On Mon, Feb 22, 2010 at 4:49 PM, Lee Hambley <[email protected]> wrote:
>>> You can write something like:
>>>
>>> task :load_hosts do
>>>    # load your file here, itterate over it calling role() when you are done
>>> with the list
>>> end
>>>
>>> Then $ cap load_hosts uname
>>
>> (iqbala)@sys-ubuntu:~$ cat capfile
>> set :gateway, "gwhost.example.net"
>> print 'role :myhosts'
>> File.open("puppetless").each do |line|
>>   line.chomp!
>>   print ', "' + line + '"'
>> end
>> puts
>> task :uname, :roles => :myhosts do
>>  run "uname -a"
>> end
>>
>> (iqbala)@sys-ubuntu:~$ cap uname
>> role :myhosts, "chi-host-01.example.net", "dca-host-01.example.net",
>> "iah-host-01.example.net", "jfk-host-01.example.net",
>> "kcm-host-01.example.net", "osu-host-01.example.net",
>> "sea-host-01.example.net", "svl-host-01.example.net"
>>  * executing `uname'
>>  * executing "uname -a"
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/servers.rb:86:in
>> `role_list_from': unknown role `myhosts' (ArgumentError)
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/servers.rb:84:in
>> `map'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/servers.rb:84:in
>> `role_list_from'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/servers.rb:51:in
>> `find_servers'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/servers.rb:9:in
>> `find_servers_for_task'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/connections.rb:133:in
>> `execute_on_servers'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/actions/invocation.rb:171:in
>> `run_tree'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/actions/invocation.rb:143:in
>> `run'
>>        from capfile:9:in `load'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/execution.rb:139:in
>> `instance_eval'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/execution.rb:139:in
>> `invoke_task_directly_without_callbacks'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/callbacks.rb:27:in
>> `invoke_task_directly'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/execution.rb:89:in
>> `execute_task'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/execution.rb:101:in
>> `find_and_execute_task'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:45:in
>> `execute_requested_actions_without_help'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:44:in
>> `each'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:44:in
>> `execute_requested_actions_without_help'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/help.rb:19:in
>> `execute_requested_actions'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:33:in
>> `execute!'
>>        from 
>> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:14:in
>> `execute'
>>        from /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/bin/cap:4
>>        from /usr/bin/cap:19:in `load'
>>        from /usr/bin/cap:19
>>
>> I am sure my syntax is wrong. Need your help to fix it.
>
> I updated
>
> set :gateway, "gwhost.example.net"
> role :myhosts, File.open("puppetless").map {|l| l.chomp!}
> task :uname, :roles => :myhosts do
>  run "uname -a"
> end
>
> (iqbala)@sys-ubuntu:~$ cap uname
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/server_definition.rb:16:in
> `initialize': undefined method `match' for #<Array:0x7fb1c71595c0>
> (NoMethodError)
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/roles.rb:57:in
> `new'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/roles.rb:57:in
> `role'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/roles.rb:57:in
> `each'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/roles.rb:57:in
> `role'
>        from capfile:2:in `load'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/loading.rb:172:in
> `load_from_file'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/loading.rb:89:in
> `load'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/loading.rb:86:in
> `load'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/loading.rb:86:in
> `each'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/configuration/loading.rb:86:in
> `load'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:64:in
> `load_recipes'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:64:in
> `each'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:64:in
> `load_recipes'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:30:in
> `execute!'
>        from 
> /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/lib/capistrano/cli/execute.rb:14:in
> `execute'
>        from /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.9/bin/cap:4
>        from /usr/bin/cap:19:in `load'
>        from /usr/bin/cap:19
>
> I still need some help

It is working now. Here is the final copy of the capfile. It reads
through line by line of a file
to pick up the list of hosts.

set :gateway, "gwhost.example.net"
role :myhosts, *File.open("hostlist").map { |host| host }
task :uname, :roles => :myhosts do
  run "uname -a"
end

Thanks to eirik from #ruby



>
>>
>> [..]
>
>
> --
> Asif Iqbal
> PGP Key: 0xE62693C5 KeyServer: pgp.mit.edu
> A: Because it messes up the order in which people normally read text.
> Q: Why is top-posting such a bad thing?
>



-- 
Asif Iqbal
PGP Key: 0xE62693C5 KeyServer: pgp.mit.edu
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

-- 
* 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.com/group/capistrano?hl=en

Reply via email to