Headless deployment of Memcached/Membase server by scripting
Would be great if it's possible to script the deployment of new cluster/node through a command line script with a prepared config file, instead of having to manually go through the setup wizard GUI.
Thanks Perry. How about installation? I would like to be able to grab only the barebone runtime binaries of Memcached/Membase and push it out to our web farm through command line. It would be handy to have a 'Standalone Executable' version for download alongside with the installable package.
Thanks again Joseph. I think it's going to be a bit difficult to have standalone binaries due to all the necessary library linkings. Installation itself is a fairly quick process, can you describe specifically the problem that you're trying to solve?
Perry
Basically we would like to fully automate the deployment of our entire system. For example when we want to deploy a new node of our web farm, all we need to do is to execute a script (e.g. batch file or NAnt script or PowerShell) that would compile our website codes, push the binaries out to a blank machine, install any necessary dependencies (e.g. memcached), perform necessary configuration, start IIS and ask the load balancer to start dispatching requests to this new node.
Another scenario is when a new developer needs to setup the whole system on his own machine for development, he could just execute the same deployment script using his own machine as the target (instead of having to manually install a dozen things to get it up and running).
I think what I was asking is just the Windows equivalent of a 'tarball' or .tgz download (vs RPM package)
Thanks for the discussion Joseph. I'd like to dig a little bit deeper so that I understand what we need to provide.
When you say install a necessary dependency, why couldn't the Memcache/Membase exe be one of those dependencies?
Perry
Memcache/Membase is indeed one of those dependencies and that's why want to script/automate the installation.
Ha, around and around we go. I think I got it.
While it's not as clear as we would like it to be, Membase.org provides the source code that is used to build everything. If you decide to purchase licenses from us, we will certainly make the same mechanism available to you in place of an exe file.
Does that make sense or am I still missing something?
Perry
Joseph, thinking about this more, it seems like you're simply looking for a way to get around the interactive InstallShield for installing on Windows right?
How do other Windows software packages handle this? I did some searching around and it seem like there are a few automatic installation tools available, but I'm not sure what we can do differently with our product.
Thanks
Perry
Joseph, could you take a look at this wiki entry and let me know if it solves your problem? http://wiki.membase.org/display/membase/Unattended+Windows+Install
Thanks
Perry
Hi Perry,
Came here to add a feature request but I'm part of the "community" right?
I think even if you do a silent install on windows you still have to deal with the location of physical data store if you don't want to use the default location of the data. We definitely want to segregate the program files for membase and the location of the physical data store onto separate disk/partitions.
The CLI does allow you to add a cluster to the server directly but you cannot specify (as far as I can tell) the physical location of the store.
By the way, your link above points to the GIT location which is dead, here is the new url ;)
http://wiki.membase.org/display/membase/Membase+Management+REST+API
Joseph, for the original question you'd have to take the following steps for Windows automated deploy
1. batch script silent install membase MSI (see Perry's link)
2. call the REST api to provision a node
a. if you are proficient in powershell you can use that to script out the REST call (this is the best for Windows since its pre-installed)
b. if you are not proficient you have to silent-install curl in addition to membase, then use curl to make the REST call
3. make either CLI or REST call to join the node to the cluster
4. repeat steps 2 and 3
5. make either a CLI or REST call to rebalance the cluster
Hope that helps.
--
Jason Sirota
Director, Application Architecture - The Knot
http://twitter.com/jasonsirota
Thanks for the detailed description Jason.
This bug is tracking the need for the CLI to include those capabilities: http://jira.membase.org/browse/MB-2553
Perry
Only problem with the comment is that the disk path is specified per-node, not per-cluster, so having it in the cluster-init cli call is not useful if you're just adding a new node to an existing cluster. You really want to be able to specify the disk path in the add-server method.
I might re-organize either the console or the CLI to mirror each others set-up steps. something like:
membase setup --disk-path="c:\..." --setup-type=new --ram-quota=4096 -u Administrator -p 1234
or
membase setup --disk-path="c:\.." --setup-type=join --cluster-address="127.0.01" -u Administrator -p 1234
Jason
Makes sense Jason. The cluster-init will be used for cluster-wide settings as well as per-node settings but I will update the bug to see if we can make this clearer.
Perry
Thanks for the feedback Joseph. We actually provide both a CLI and direct access to the REST API. Both the GUI and the CLI go through the REST API in the end. We know that the CLI is currently not fully functional in the current release, but you can find the full REST API documentation here: [url]http://github.com/northscale/ns_server/blob/master/deps/menelaus/doc/API/index.markdown[/url]
Hope that helps, thanks again for the feedback.
Perry
Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!