Is it possible to have load balancing between virtual machines without placing the machines in the same cloud service?
We want to use Ansible to configure our machines and setup RabbitMQ but I can't see how it could be done without having an public IP to each of the machines.
You can use Traffic Manager to balance requests between different cloud services at DNS level http://azure.microsoft.com/en-us/services/traffic-manager/
I don't know if it fits RabbitMQ needs.
The azure VM while not having a public IP can be accessed via SSH using a specific port. In your ansible inventory file you can define the ansible_host and ansible_port for each of your VM's.