---
format: markdown
categories: Netz-Infrastruktur, Backbone, Supernodes
title: Server-Automatisierung
...

# Automatisierung der Supernodes und anderer Server

## Motivation

Aktuell werden Supernodes und andere Server durch klonen von VM-Images und viele händische Eingriffe erzeugt. Die
Vergangenheit hat zwar gezeigt, dass dies grundsätzlich funktioniert, aber zukünftig wird dieser Ansatz vermehrt
Probleme bereiten. Zu diesen Problem gehören:

* Skalierbarkeit
* Reproduzierbarkeit
* Nachvollziehbarkeit

Dazu erhält man mit einer vernünftigen Automatisierung auch einige weitere positive Nebeneffekte

* Einfaches Setup für Testumgebungen
* Einfacherer Start für neue Communities

## Mögliche Tools

Es gibt verschiedene Automatisierungstools am Markt. Einige bekannte sind:

* [Puppet](https://puppetlabs.com/)
* [Chef](https://www.chef.io/)
* [Ansible](http://www.ansible.com/home)

Alle diese Tools haben verschiedene Vor- und Nachteile. Aus der aktuellen Diskussion scheint sich aber eine Präferenz
für Ansible anzuzeichnen.

## Aktueller Stand

Es gibt bereits erste Ansätze eine Community (Supernodes + Map Server) in Ansible zu beschreiben. Das Playbook kann 
[hier](https://github.com/dereulenspiegel/ffdo-ansible) gefunden werden. Auf Basis dieses Playbook wurden einige Rollen
als eigenständige Rollen ausgegliedert und in eigene Repositories abgespalten

* [Alfred](https://github.com/dereulenspiegel/ansible-alfred)
* [Alfred-json](https://github.com/dereulenspiegel/ansible-alfred-json)
* [fastd](https://github.com/dereulenspiegel/ansible-fastd)

Diese Rollen können eigenständig benutzt werden und sollten keine bzw. wenige Abhängigkeiten zu anderen Rollen haben. 
Diese Rollen werden auch im oben genannten Playbook wiederverwendet.