roboconf / roboconf-platform

The core modules and the platform
Apache License 2.0
35 stars 11 forks source link

Add a new step in the plug-in API: checkup #105

Open rpignolet opened 10 years ago

rpignolet commented 10 years ago

Manipulate the Roboconf Agent means have a way to change the state of a Agent.

Imagine a component with the start script is just "service toto start". Now we connect to the machine, we run the command "service toto start" ourself and we tell to the Agent that he must have the state "DEPLOYED_STARTED" and he send to the DM the correct message.

With that way we can easily debug a VM without restart the roboconf application.

vincent-zurczak commented 10 years ago

This can be achieved through dedicated Karaf commands.

rpignolet commented 10 years ago

Another improvement can be:

Imagine a VM with a Mongod running on it without Roboconf. We want to add the Roboconf power on the VM: so roboconf upload the Agent to the VM (not yet implemented) and the Agent will execute a script (Puppet or Bash according to the plugin) like evaluate and this script will return to the Agent the state which it must be.

An example:

We have a VM with the mongod process running. The evaluate script will do a command like service mongod-server status and if the command return true the script return DEPLOYED_STARTED or if the command return false the script return DEPLOYED_STOPPED. We can also adjust the script in the case where mongod is not deployed.

With this feature we can add the Roboconf power (dynamic reconfiguration) to an existing cluster deployed without Roboconf (if the cluster is already on a IaaS).

vincent-zurczak commented 10 years ago

Hi.

The discussion about the DM uploading the agent reached the conclusion that the DM should NOT upload the agent. Instead, we decided that creating a Debian package would be much more simple. This way, we can easily install it by hand, or automatically, at startup.

Then, the question about the agent detecting something is already installed or started is another question. Maybe we could have an evaluate command, like you suggested. We must complete our work on the agent (Karaf distribution + Debian package). Then, we will be able to work on agent commands. :)

vincent-zurczak commented 7 years ago

Checkup would allow to verify a given instance is "working well". A health state would be added in instances and displayed in the web administration. The check period should be configurable (at some place to be determined).