Problem
How do I deploy Components/Containers around distributed hosts?
Solution
The basic principle is that
- a Component runs inside a specified Container
i.e. for a component you specify only the name of the Container where it has to run and never explicitly the host.
The Container name is an information that you configure for Components in the CDB.
Then the issue becomes:
- how do I start a Container on a certain host
There are various options for this, but the principle is:
- I start a Container and I tell it where the Manager is, typically using the
MANAGER_REFERENCE.environment variable.
The container start up, logs into the Manager and then the Manager knows what to do when a component is requested for that Container.
You can find a short summary of the simplest, by hand strategy here:
Here is a more detailed description of the various strategies available:
Command Line
You can start the container "by hand" from the command line in the desired host.
See the acsStartContainer command in:
http://www.eso.org/projects/alma/develop/acs/OnlineDocs/ACS-Overview.pdf
> export MANAGER_REFERENCE=corbaloc:::3000/Manager
(or use the -m command line option os acsStartContainer)
> acsStartContainer -cpp MyContainerName
Command Center
You can use the ACS Command Center.
See: http://www.eso.org/projects/alma/develop/acs/OnlineDocs/ACSCommandCenter/Acs_Command_Center_-_User_Guide.html
Just click on the [...] button for the configuration of the Container to start.
There you can specify the host and the remote login information.
The CommandCenter will do a remote ssh execution and set properly MANAGER_REFERENCE
ACS Daemon
You can use an ACS Daemon This is a feature introduced in ACS 6 and is being used for the actual ALMA deployment.
See: DeploymentOfComponentsOnNodesAndStartupOfContainers
- Run the
> acscontainerdaemon
process on any host where you will want to have Containers running - Configure in the CDB the deployment information for a container, by setting the host where it will run (and where there must be a daemon running).
Seehttp://www.eso.org/projects/alma/develop/acs/OnlineDocs/ACS_docs/schemas/urn_schemas-cosylab-com_Container_1.0/complexType/DeployInfo.htmlAnd see the test/CDB/MACI/Containers directory in the jmanager module for an example.
- This done, whenever a Component will be needed running on that container, the Manager will ask the proper daemon to start it (if it is not already running).
More information
You can get some additional background information here:
-- GianlucaChiozzi - 09 Aug 2007