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