Working vagrant and Virtualbox.
Ruby (checkout RVM: https://rvm.io/)
Docker (for Gossip Router)
Then:
./setup.sh
OR
gem install r10k --no-ri --no-rdock
r10k puppetfile install
vagrant up load-balancer instanceN
vagrant up gossiprouter --provider docker
Multi-machine environment with:
- gossiprouter (Very simple docker container running a Gossip Router, useful where multicast is not an option, like AWS and other cloud providers)
- load-balancer (centos-7-httpd-modcluster) (Apache + mod_cluster)
- instance1 (centos-7-instance1) (Wildfly 9.0.2 Standalone Full HA)
- instance2 (centos-7-instance2)(Wildfly 9.0.2 Standalone Full HA)
New instances can be provisioned with incrementing WILDFLY_INSTANCES
range in Vagrantfile.
Check: environments/production/manifests/site.pp
Using:
- biemond-wildfly
- puppetlabs-apache
- puppetlabs-stdlib
- puppetlabs-concat
- puppetlabs-java
- crayfishx/firewalld
user: wildfly
password: wildfly
http://172.28.128.10:6666/mod_cluster_manager
cluster-demo is a sample application to test cluster behavior: https://github.com/liweinan/cluster-demo
http://172.28.128.10/cluster-demo
vagrant docker-logs gossiprouter
There are two ansible playbooks:
wildfly-first-deployment: Deploys a package to Wildfly instances.
wildfly-rolling-deployment: Disables instance in the load balancer, updates deployment, enable instance. One by one, no downtime.
To execute it you'll need ansible installed in your computer:
ansible-playbook wildfly-first-deployment.yml --ask-pass
Password for root is: 'puppet'