<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hello guys, <br>
<br>
In Rudder 3.0, we want to add a command to manage Rudder Agent. <br>
The main idea is to let the user have an unique entry point to do
all the common stuff (running the agent now, in debug, updating its
policies, sending an inventory, etc) with a sensical and harmonized
naming scheme. <br>
<br>
So, that's for the big picture, now for some more ideas we wanted to
share to get feedback early, because, well, we really want to make
the Rudder user life easier, so it seems to make sense to ask what
they are thinking about that :)<br>
<br>
<br>
<b>Main goals for now:</b><br>
<ul>
<li>we have a main command with (at least) two sub-context (agent
and server) allowing to interact with these components<br>
</li>
<li>the main cli must be an an extensible command wrapper so that
it is esay to add new command</li>
<li>each command should be writtable in any language (shell and
python come to mind)</li>
<li>the commands should be discoverable from the cli without any
other reference outside</li>
<ul>
<li>(I refreigned to use intuitive, but its behavior really must
seem natural and logic for any sysadmin used to unix)<br>
</li>
<li>we have convention about the behavior of sub-command so that
there is little suprise from one to an other (not git like :)</li>
<li>each sub-command embed a description of its goal so that
it's easy to display a summary at the top level<br>
</li>
</ul>
</ul>
<br>
<br>
<b>Current state and technical details:</b><br>
<br>
We have a proto working for the agent and a very little subset of
commands. The code will be available in repo
<a class="moz-txt-link-freetext" href="https://github.com/Normation/rudder-agent">https://github.com/Normation/rudder-agent</a> (you can already look at
the Pull Request: <a class="moz-txt-link-freetext" href="https://github.com/Normation/rudder-agent/pull/1">https://github.com/Normation/rudder-agent/pull/1</a>)<br>
<br>
There is two main items:<br>
<ul>
<li>a directory (/opt/rudder/share/commands) containing individual
commands, organized as follow:</li>
<ul>
<li>each command is in its own executable file</li>
<li>the file has the naming scheme: [agent|server]-cmd_name</li>
<li>the file contains an header with the command description<br>
</li>
</ul>
<li>the (python) "rudder" command, that will be located in
"/opt/rudder/bin/rudder", and is just a wrapper with the
following behaviour:</li>
<ul>
<li>"rudder" => display the general info, let know that you
can call "rudder [agent|server|help]</li>
<li>"rudder agent" or "rudder server": list all commands in
/opt/rudder/share/cli with the correct prefix and for each of
them, display its description. <br>
</li>
</ul>
</ul>
<br>
The current implemented commands are only on rudder agent for now:<br>
<ul>
<li>rudder agent enable / disable<br>
</li>
<li>rudder agent reinit</li>
<li>rudder agent reset</li>
<li>rudder agent inventory</li>
<li>rudder agent run</li>
<li>rudder agent update<br>
</li>
</ul>
<div class="moz-signature">Hopefully, others will follow - and any
feedback on that is warmlly welcomed !<br>
<br>
Cheers, <br>
<br>
-- <br>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<style type="text/css"><!--
a.redlink:link { color: #962322; text-decoration: none; }
a.redlink:visited { color: #962322; text-decoration: none; }
.sig { font-family: sans-serif; font-size: small; }
.sigsmall { font-family: sans-serif; font-size: x-small; }
--></style>
<table width="380" border="0" cellpadding="0" cellspacing="2">
<tbody>
<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td colspan="2"><b><img alt=""
src="cid:part1.05020809.08070800@normation.com"
width="50" height="50" hspace="10" align="left"> <span
class="sig">François ARMAND</span></b><br>
<span class="sig"><i>Directeur de la R&D</i></span><br>
<span class="sig"><a class="redlink"
href="http://www.normation.com">Normation</a></span> </td>
</tr>
<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td colspan="2"><span class="sigsmall"><b>87 rue de Turbigo,
75003 Paris, France</b></span></td>
</tr>
<tr>
<td><span class="sigsmall">Telephone:</span></td>
<td><span class="sigsmall">+33 (0)1 83 62 99 23</span></td>
</tr>
<tr>
<td><span class="sigsmall">Mobile:</span></td>
<td><span class="sigsmall">+33 (0)6 63 37 60 55</span></td>
</tr>
<tr>
<td colspan="2">
<hr></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>