Categories
Allgemein

Ansible

“Ansible ist eine Open-Source-Plattform zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Sie kombiniert Softwareverteilung, Ad-hoc-Kommando-Ausführung und Konfigurationsmanagement.”

http://de.wikipedia.org/wiki/Ansible)

Die Verwaltung von Linux-Servern wird mit zunehmender Anzahl schwieriger und unübersichtlich. Ansible erlaubt es, in recht einfacher Syntax, Eigenschaften und Parameter von (vorwiegend) Linux-Systemen in Form von Modulen und Rollen zu definieren, und zentral aus einem Repository auszurollen.

Vorteile

  • Ansible braucht keinen Agent auf dem Ziel-System, es genügt ssh-Zugriff per public-key-authentication.
  • Einfache Syntax und Logik: geringe Einstiegshürden
  • Skalierbarkeit: ob 3 oder 3000 Server, ansible ist sinnvoll anzuwenden
  • Ad-hoc-Commands erlauben das Administrieren von vielen Servern mit nur einem Kommando

Ein Beispiel für die Anwendung von ansible ist das automatisierte Installieren eines Betriebssystems, inklusive diverser Standard-Dienste und gewünschter Settings.

-> dieses git-repo demonstriert die Installation eines Gentoo-Linux: https://github.com/stefangweichinger/ansible-gentoo

Ansible ist als open-source-Software frei verfügbar.

https://github.com/ansible

debops

YOUR DEBIAN-BASED DATA CENTER IN A BOX

Vortrag zu DebOps beim Wiener Linux-Tag 2018: Linuxtage Wien 2018

Video zum DebOps-Talk 2017 in Graz, auf YouTube:

DebOps ist eine Sammlung von sogenannten Roles für Ansible:

Ein mächtiges Framework von Ansible-Rollen, um Debian-basierte Systeme konsistent zu konfigurieren.
Sinnvolle Defaults, Augenmerk auf Sicherheit und praktische Anwendbarkeit.

DebOps ist noch recht jung und in aktiver Entwicklung, wird aber bereits erfolgreich in produktiven Umgebungen eingesetzt.

Mit nur wenigen Zeilen Konfiguration ist es möglich, Debian-Server schnell und einheitlich auszurollen.

Zentrale Verwaltung von zB:

  • ssh-Keys
  • User/Gruppen
  • Samba
  • Firewall-Regeln
  • cronjobs
  • Konfiguration des Netzwerks (ifupdown)
  • Debian-Updates (unattended upgrades)
  • mysql/mariadb-Datenbanken + deren Backups
  • nginx Configs
  • LetsEncrypt-Certs
  • … und vieles mehr: aktuell mehr als 150 Roles in DebOps!

Die von Ansible bekannten Gruppen- und Host-Variablen erlauben

  • einheitliche Config von zb locale, timezone, default gateways, ssh-pubkeys, SMTP-Host … wo erwünscht/erforderlich
  • punktgenaue Anpassung auf einzelnen Systemen oder Hostgroups von zB nginx-vhosts, Samba-Shares, usw

Und das alles in einem Projektverzeichnis von wenigen Megabyte Größe, elegant zu verwalten zB per git-Repo.

oops! bietet dazu gerne Support an

Categories
Allgemein

ansible-rclone

Im Zuge eines Kunden-Projekts tauchte die Anforderung auf, das beliebte Programm rclone per Ansible zu deployen. Ich begann damit, eine einfache Ansible-Rolle zu erstellen und stellte diese online:

https://github.com/stefangweichinger/ansible-rclone

Mittlerweile ist dieses kleine Projekt schon recht beliebt, 10000 Downloads, etliche Forks und Stars sind ein erfreuliches Feedback.

molecule

Die Entwicklung einer Ansible-Rolle ist gar nicht so trivial, für gute Qualität sollte jede Änderung gegen verschiedene Betriebssysteme getestet werden.

Auf Github ist hierfür Travis CI verfügbar:

https://travis-ci.org/stefangweichinger/ansible-rclone

zum Testen der Rolle verwende ich Molecule

Als einleitendes HOWTO empfiehlt sich:

https://www.jeffgeerling.com/blog/2018/testing-your-ansible-roles-molecule