set(:rabbitmq_role, :rabbitmq)
namespace :rabbitmq do
task :defaults do set(:rabbitmq_packages, %w[rabbitmq-server]) end task :sources do role = fetch(:rabbitmq_role) key = :"ubuntu_packages_for_#{role}" packages = fetch(key,[]) packages += fetch(:rabbitmq_packages) set(key, packages) key = :"ubuntu_software_sources_for_#{role}" sources = fetch(key,[]) sources += [ [ "'deb http://www.rabbitmq.com/debian/ testing main'", "http://www.rabbitmq.com/rabbitmq-signing-key-public.asc" ] ] set(key, sources) end task :enable_plugins do on roles(fetch(:rabbitmq_role)) do unless test "[[ -f /etc/rabbitmq/enabled_plugins ]] " upload_as :rabbitmq, StringIO.new("[rabbitmq_management,rabbitmq_management_visualiser,rabbitmq_stomp,rabbitmq_amqp1_0,rabbitmq_mqtt]."), "/etc/rabbitmq/enabled_plugins" sudo "service rabbitmq-server restart" end end end
end
after “load:defaults”, “rabbitmq:defaults” before “ubuntu:update_sources”, “rabbitmq:sources” after “ubuntu:install_packages”, “rabbitmq:enable_plugins”