Skip to content

Instantly share code, notes, and snippets.

@rawlingsj
Created September 24, 2014 16:06
Show Gist options
  • Save rawlingsj/e8ba258601b5f210d480 to your computer and use it in GitHub Desktop.
Save rawlingsj/e8ba258601b5f210d480 to your computer and use it in GitHub Desktop.
How to recover a broken ensemble member using the Fabric quorum
created by James Rawlings on Aug 21, 2014 10:08 AM, last modified by James Rawlings on Aug 21, 2014 10:08 AM Version 1
If you have a quorum in place in the event of loosing a member you can restore the health of the ensemble using the following steps.
Assuming there are two working ensemble members you can unzip a fresh distribution of JBoss Fuse 6.1 and join the existing ensemble. You can try this out locally by setting up the ensemble using vagrant images and the steps found How to create a fabric ensemble from CLI.
1. Ensure there are no orphaned Karaf java processes that could be the old broken ensemble member
2. Delete existing working folder if using the original server
bash-3.2$ rm -rf jboss-fuse-6.1.0.redhat-379
3. Unzip a fresh copy of Fuse
bash-3.2$ unzip jboss-fuse-full-6.1.0.redhat-379.zip
4. Enable the admin user
bash-3.2$ vi etc/users.properties
5. Start Fuse with the correct user
bash-3.2$ ./bin/start
6. After a short while you should be able to connect
bash-3.2$ ./bin/client -u admin -p admin
7. Now you can join th eexisting ensemble using one of the running hosts. You also need to force the use of the oroginal name to ensure the ensemble profile is applied. You also need to provide the zookeeper password
JBossFuse:fabric@fs01> fabric:join --zookeeper-password fabric --force integration1:2181 fs01
8. I've noticed that if you use a name other than root, in our case we use fs01 then the process is not automatically started. Manually start and connect using the fabric user credentials..
bash-3.2$ ./bin/start
bash-3.2$ ./bin/client -u fabric -p fabric
9. After a little while the registry will be sync'd and you will be able to see all the conatiners
JBossFuse:fabric@fs01> container-list
@abcabc6
Copy link

abcabc6 commented Apr 23, 2015

Hi James,

Thanks for your article.
For example, I have created a exact same ensemble according to your another article "How to create a fabric ensemble from CLI", now, "fs02" is broken, to recover and rejoin "fs02" to existed ensemble, I followed step 1~6 to prepare, then what command should I use on step 7?

Did fabric:join command take place on client side?

Any suggestion is appreciate!

Best Regards,
Paul

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