Open Source infrastructuur config tools

Voor het op een consistente manier opbouwen en onderhouden van een cloud infrastructuur kunnen we tegenwoordig kiezen uit zeer veel Open Source tools. De bekendste configuratie tool waar het mee begon is Puppet. Puppet is geschikt om een groep van servers volgens een standaard te configureren en deze staat af te dwingen door de Puppet runs. Puppet heeft een Puppet agent nodig op de cliënt en deze haalt zijn configuratie van de Puppet master. Om initieel tot een bepaalde staat te komen zijn er vaak meerdere Puppet runs nodig. Een groot nadeel van Puppet is de beperkte controle over de Puppet runs. Voor meer controle zijn extra tools nodig. Puppet wordt dan ook van gecombineerd met Rundeck of in mindere mate met MCollective. Je mist hier dan wel de samenhang. Mcollective heeft weer een eigen agent en modules nodig en werkt via een service bus. Vanaf 2014 zie je hier dan ook dat veel mensen overstappen naar Ansible. Ansible is een automatiseringstool die alles kan op een zeer eenvoudige manier en je hebt alleen maar SSH en Python nodig op de cliënt.

Voordat Ansible aan het werk kan, moet er eerst een Linux OS beschikbaar worden gesteld. Kale server hardware kan via PXE boot worden voorzien van het juiste Linux server profiel. Veel gebruikte tools hiervoor zijn Cobbler, Foreman en MAAS. Dit zijn allemaal tools die het installatie proces van een Linux distributie kunnen automatiseren via een kickstart of preseed template. Een voordeel van MAAS is de snelheid van installatie door met images te werken.

Ansible is nu ook de tool om een complexe cloud infrastructuur als OpenStack met CEPH als object storage op te bouwen en te onderhouden. Ook RackSpace is overgestapt naar Ansible en gebruikt de van door Ubuntu groot gemaakte LXC container techniek om het allemaal beheersbaar te houden. Ubuntu heeft een eigen config/orchestration tool Juju, maar deze wordt niet zo breed toegepast.