Skip to content

Instantly share code, notes, and snippets.

@hoanga
Created June 17, 2011 20:33
Show Gist options
  • Save hoanga/1032275 to your computer and use it in GitHub Desktop.
Save hoanga/1032275 to your computer and use it in GitHub Desktop.
Removing server from role
def remove_server_from_role(server, myrole)
save_servers = self.roles[myrole].servers.dup.map { |sss| sss.to_s }
self.roles[myrole].clear
save_servers.each do |serv|
unless serv == server
role myrole, serv
end
end
end
role :test_role, "testhost1"
role :test_role, "testhost2"
desc "Test Task"
task :test_task, :roles => :test_role do
run "ls /tmp"
remove_server_from_role("testhost1", :test_role)
run "ls /tmp"
end
@perl2ruby
Copy link

To reset a role (i.e. remove all servers):

def reset_role(myrole)
self.roles[myrole].clear
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment