<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Le 31/03/2016 12:37, Francois Armand a
écrit :<br>
</div>
<blockquote cite="mid:56FCFDE3.2050007@normation.com" type="cite">
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
Hello, <br>
<br>
So, here goes for a summary of <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://www.rudder-project.org/redmine/issues/8022">http://www.rudder-project.org/redmine/issues/8022</a>,
"Node's FQDN-Resolution is sometimes invalid" and related tickets.
<br>
The problem cover up several sub-cases, which need to be addressed
systematically to achieve some result.<br>
They are: <br>
<ul>
<li>1/ the node FQDN is used for identifying a node, and then
manage authentication and authorization to access its
promises. If Rudder server, CFEngine promise server, and the
node don't agree on it, the node can't get its promises. This
is a hard problem because:</li>
<ul>
<li>FQDN is fragile. It needs a perfectly up to date and
shared DNS environment. But "it's always a DNS problem",
what gives an idea. <br>
</li>
<li>FQDN tools are notoriously broken, and don't always agree
about what is the FQDN of a host</li>
<li>even in a perfectly working and up-to-date DNS env, there
may have voluntary decision not to have the same FQDN from
the host and the server, as explained in #8022 ticket. <br>
</li>
</ul>
<li>2/ if the node FQDN is not correct in the first sent
inventory, the node configuration is delayed by one day,
because from the node point of view, the inventory was
correctly sent and so the standard frequency for sending
inventories is applied. <br>
</li>
</ul>
<br>
The long-term solution for 1/ is to use something else that FQDN
to identify the node - we have for example an UUID for that. The
problem here is that it is a hard limitation of the protocol used
by cf-serverd. So to use another identification scheme (and why
not our own authentication/authorization), we need to either patch
cf-serverd or use a different client-server protocol for promises
transfer. Both solutions are open, but are out of scope.<br>
<br>
Meanwhile, we can address at best 1/ and 2/ <br>
<br>
<b>For 1/, </b>we need to prevent as much as we can to give bad
FQDN and in all case, give the user a possibility to hook what he
knows should be the correct value. <br>
<b>- Prevent more bad FQDN:</b><b><br>
</b>=> update perl version: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://www.rudder-project.org/redmine/issues/8123">http://www.rudder-project.org/redmine/issues/8123</a><br>
I didn't find anything else on that subject, compared to what we
are doing now. <br>
<br>
<b>- Let the user hook the correct value: </b><b><br>
</b>=> <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.rudder-project.org/redmine/issues/8022#note-20">http://www.rudder-project.org/redmine/issues/8022#note-20</a><br>
Here, we still need to specify the path convention for command and
file to look for the correct FDQN. <br>
</blockquote>
I have some remarks/questions here:<br>
<br>
* If I understand correctly the process will be: Inventory is ran on
the Node, then inventory is modified to add data from commands /
file ? or will this be used when runnig fusionInventory ? <br>
<br>
* In Which entry will they be stored ? RUDDER/HOSTAME? another one?<br>
<br>
* Do we want to define Hostname only ? Would it not be better if the
solution was much more adaptable and can modify any entry from the
inventory ? <br>
<br>
<br>
About the path, I suggest we should put them under
/var/rudder/inventories :<br>
<br>
<ul>
<li>If we modify only hostname (RUDDER/HOSTNAME):</li>
<ul>
<li>/var/rudder/inventories/hostname-command: Command to execute
the get the correct hostname</li>
<li>/var/rudder/inventories/hostname-file: File containing the
path the file containing the correct hostname</li>
</ul>
</ul>
<ul>
<li>If we want something more general:</li>
<ul>
<li>/var/rudder/inventories/commands or
/var/rudder/inventories/hooks.d : to put all commands/hooks</li>
<li>/var/rudder/inventories/mapping: a file mapping a Key in
inventory to an action to do, ie:</li>
<ul>
<li>RUDDER/HOSTNAME => get_fqdn.sh # Will run get_fqdn.sh
(from hooks directory!) and put output into the correct tag<br>
</li>
<li>OPERATINGSYSTEM/OSVERSION => /some/path/to/file # Will
read that file to fill the tag<br>
</li>
</ul>
</ul>
</ul>
I hope I'm not going too far from the original idea ...<br>
<br>
<br>
<blockquote cite="mid:56FCFDE3.2050007@normation.com" type="cite"> <br>
<b>For 2/, </b>we need to prevent the sending of inventory that
will be rejected by the server for sure. <b><br>
</b>=> <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.rudder-project.org/redmine/issues/8127">http://www.rudder-project.org/redmine/issues/8127</a><br>
<br>
Hope it helps sum up the whole solution. <br>
<br>
Cheers, <br>
<br>
<div class="moz-signature">-- <br>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<style type="text/css"><!--
a.redlink:link { color: #1782E6; text-decoration: none; }
a.redlink:visited { color: #1782E6; text-decoration: none; }
.sig { font-family: 'Century Gothic', CenturyGothic, AppleGothic, sans-serif; font-size: small; }
.sigsmall { font-family: 'Century Gothic', CenturyGothic, AppleGothic, 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:part5.07030407.01060505@normation.com"
align="left" height="50" hspace="10" width="50"> <span
class="sig">François ARMAND</span></b><br>
<span class="sig"><i>Co-founder & CTO</i></span><br>
<span class="sig"><a moz-do-not-send="true"
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>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
rudder-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rudder-dev@lists.rudder-project.org">rudder-dev@lists.rudder-project.org</a>
<a class="moz-txt-link-freetext" href="http://www.rudder-project.org/mailman/listinfo/rudder-dev">http://www.rudder-project.org/mailman/listinfo/rudder-dev</a>
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<style type="text/css">
<!--
a.redlink:link { color: #1782E6; }
a.redlink:visited { color: #1782E6; }
.sig { font-family: 'Century Gothic', CenturyGothic, AppleGothic, sans-serif; font-size: small; }
.sigsmall { font-family: 'Century Gothic', CenturyGothic, AppleGothic, 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="Logo Normation"
src="cid:part7.08050604.03060206@normation.com"
align="left" height="50" hspace="10" width="50"> <span
class="sig">Vincent Membré</span></b><br>
<span class="sig"><i>Developer / Release manager</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">Phone:</span></td>
<td><span class="sigsmall">+33 (0)1 84 16 06 00</span></td>
</tr>
<tr>
<td><span class="sigsmall">Mobile:</span></td>
<td><span class="sigsmall">+33 (0)6 10 14 76 78</span></td>
</tr>
<tr>
<td colspan="2">
<hr> </td>
</tr>
</tbody>
</table>
</div>
</body>
</html>