As someone who has fought with using/modifying/QA'ing unstable FreeIPA installers from the nightly repos, I wholeheartedly second this motion!<div><br></div><div>Make sure the oVirt guys get wind of this idea also! ;)</div>
<div><br></div><div>PS: semi-related note — <span></span>Can FreeIPA be made to consume the CSR that results from the ovirt-host-deploy hoster node installer?</div><div><div><br>On Thursday, November 14, 2013, Petr Spacek  wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
there is an interesting idea that installers should be idempotent. I have heard it on LinuxAlt conference 2013 in Brno, Czech republic and it is implemented e.g. by project Chef [1] and it is used e.g. by OpenStack installer [2] (used e.g. by SUSE).<br>

<br>
What Wikipedia says about idempotence [3]:<br>
"Idempotence is the property of certain operations in mathematics and computer science, that can be applied multiple times without changing the result beyond the initial application."<br>
<br>
... And that is it :-)<br>
<br>
In reality, it means that you can re-run OpenStack installer on the same machine/set of machines (with the same configuration, of course!) and it will re-do everything again. You can re-run installer again and again without any harm!<br>

<br>
This solves case where something went wrong during the installation, the installation was aborted and the machine was left in some inconsistent state. Think about e.g. network failure during installation, improper configuration which prevented installation from finishing (crap in DNS), some intermittent and mysterious errors in Dogtag installer and so on.<br>

<br>
It does mean that you don't need to recycle whole machine if something went wrong during installation ...<br>
<br>
As a result, you don't need to have separate system for installation and for upgrade.<br>
<br>
(Obviously, it means installation steps has to be 'declarative' instead of 'imperative'.)<br>
<br>
<br>
I think that this is very interesting idea and it would be interesting to write new code with idempotence in mind. Eventually, we could end with fully idempotent installer :-)<br>
<br>
[1] <a href="http://www.opscode.com/chef/" target="_blank">http://www.opscode.com/chef/</a><br>
[2] <a href="http://www.slideshare.net/mattray/deploying-openstack-with-chef" target="_blank">http://www.slideshare.net/<u></u>mattray/deploying-openstack-<u></u>with-chef</a><br>
[3] <a href="http://en.wikipedia.org/wiki/Idempotence" target="_blank">http://en.wikipedia.org/wiki/<u></u>Idempotence</a><br>
<br>
-- <br>
Petr^2 Spacek<br>
<br>
______________________________<u></u>_________________<br>
Freeipa-devel mailing list<br>
<a>Freeipa-devel@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/freeipa-devel" target="_blank">https://www.redhat.com/<u></u>mailman/listinfo/freeipa-devel</a><br>
</blockquote></div></div>