• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

1 Server 1 Webapp - Ansible Sinn oder Unsinn?

ServerSide

New Member
Hallo.

Ich hab mir aus Interesse gerade verschiedene Deployment-Strategien angeschaut. Unter Anderem bin ich auf Ansible gestoßen. Eine Beispielkonfiguration für Django sieht man hier:
https://realpython.com/blog/python/automating-django-deployments-with-fabric-and-ansible/

Meine erste Reaktion: Wer zum Teufel tut sich das an?
Kann man nicht einfach ein Python Script schreiben, dass all die Befehle der Reihe nach ausführt?

Übersehe ich hier etwas wirklich Großes?
Oder macht Ansible einfach keinen Sinn wenn man nur 1 Server und 1 Webapp hat?
 
Übersehe ich hier etwas wirklich Großes?
Ja, "groß" ist der Ansatz.

Überleg mal, wie das aussieht
* wenn Du öfters Systeme mit der gleichen Konfiguration aufsetzen musst
* mal so 10, 100 oder 5000 Systeme mit der gleichen Konfiguration versehen willst
* das alles automatisiert laufen soll

Oder macht Ansible einfach keinen Sinn wenn man nur 1 Server und 1 Webapp hat?
Je nach dem, wie oft Du das System neu aufsetzen willst kann es auch für nur ein System sinnvoll sein.
... oder wenn Du sicherstellen willst, daß jedes mal die komplett gleiche Konfiguration erstellt wird, die Konfiguration ggf. nachvollziehbar sein soll und Versionsgesichert, ...

puppet, Ansible, Salt, Chef, CFEngine, ... - haben alle ihre Berechtigungen, auch wenn es sich nicht um größere Cluster handelt.

Aber ja - Du kannst natürlich auch alles selbst in Shell-Scripten abfrühstücken und die entsprechend vorhalten.
 
Ich mag Ansible und nutze dies auch im kleinen Umfang zu Hause.

Grund:
- Reproduzierbare Konfiguratione (Mal eben eine Test-VM mit 1:1 Konfiguration)
- Backups schön und gut - ich setze die Maschinen i.d.R. neu auf mit Ansible und packe dann die persistenten Daten rein
- Bei mehr als 1 Server hast du wiederkehrende Grundaufgaben, die ebenfalls per Ansible automatisierbar sein (Updates, Checks, Reports,...)

Zusätzlich ist ein Playbook eine gute Dokumentation deiner Umgebung.

Gruß
Markus
 
OK dann bin ich wohl einfach nicht die Zielgruppe. Mein Ablauf bei einem neuen Server:

1. Ich wähl mich ein, installier alle Pakete die ich brauche, konfiguriere nginx, postgres, Firewall, etc...
Das System läuft

2. Ich git pulle meine Django files und restarte meinen nginx, gunicorn, ...

3. Bei Updates: git pull im Django Verzeichnis, Restart von nginx, gunicorn, ...

Ich sehe nicht wie Ansible mir hier wirklich weiterhelfen könnte. Hätte ich 1000 Server, würde ich es ja noch verstehen, aber für einen Server scheint mir das als reine Mehrarbeit ohne Mehrnutzen.

Wenn Ihr aber gern damit rumspielt weil es Euch interessiert, sei Euch das natürlich gegönnt.
 
naja, alleine Punkt (1) kann Dir entsprechend viel Arbeit ersparen.

Kommt natürlich drauf an, wie oft Du das machst.

... und Du musst natürlich 1x vorher ein wenig Arbeit reinstecken - aber je nach dem wie gut Deine aktuelle Dokumentation ist hält sich das in Grenzen...
 
Ja wie oft setzt Ihr denn Eure (Produktiv-)Server neu auf?

Ich will dass meine Server solange und so stabil laufen wir es nur geht.
Sicherheitsupdates kommen automatisch (Debian) und ansonsten will ich einfach nur dass der Server läuft. Was ich definitiv NICHT will, ist alle 2 Monate meinen Server neu aufsetzen!! :eek::D
 
Last edited by a moderator:
In ein automatisiertes Deployment steckt man einiges an Zeit rein, bis es dann mal läuft, dafür wird im Anschluß der Bereitstellungsprozess natürlich erheblich verkürzt. Das wird aber erst ab einer gewissen Anzahl von Bereitstellungen attraktiv (oder wenn du deinen Server alle paar Tage neu installierst :p
 
Muss jeder selbst wissen.

Eine fixe Konfiguration für die Standarddienste und die Sicherheit, dass auf meinen Servern diese Konfiguration auch ständig da ist sehe ich als großen Vorteil an.

Durch zentrale Konfigurationsdateien im lokalen GIT hast du jederzeit eine Historie und kannst Änderungen nachvollziehen.

Gruß
Markus
 
Für ein lokales Git-Repo oder eine völlig ausreichende einfache Textdatei braucht man nun wirklich kein Framework.

Solche Frameworks lohnen sich erst ab regelmässig zwei Neuinstallationen pro Woche, denn dann überschreitet man die zwei Wochenarbeitsstunden, welche man problemlos fest einplanen oder zumindest als Überstunden verbuchen kann.

Und wer mir jetzt erzählen will, dass er für einen in diessem Forum üblichen 0815-Server mit OS, Web-, Mail- und DB-Server mehr als ein paar KB Textfile an Befehlsfolgen und Konfigurationsanpassungen benötigt, der hat wohl noch nie ein System ernsthaft von Grund auf aufgesetzt, oder er setzt schlicht auf die falsche Softwarekombination (fängt fast immer bereits beim OS an).

Bevor jemand fragt: Ja, ich weiss wovon ich rede/schreibe, ich verfasse seit über zehn Jahren entsprechende HowTos und brauchte nie mehr als ein simples Textfile...

Remember: KISS
 
Und wer mir jetzt erzählen will, dass er für einen in diessem Forum üblichen 0815-Server mit OS, Web-, Mail- und DB-Server mehr als ein paar KB Textfile an Befehlsfolgen und Konfigurationsanpassungen benötigt, der hat wohl noch nie ein System ernsthaft von Grund auf aufgesetzt, oder er setzt schlicht auf die falsche Softwarekombination (fängt fast immer bereits beim OS an).

Soll das heißen, die üblichen DevOps Tools wie Puppet sind deiner Meinung nach alle Grütze? ;-)
 
@virtual2: Lies halt was er geschrieben hat. Für einen einfachen 0815 Web/Email Server braucht man sicher kein Ansible/Puppet/...

Auf dem basierend, was ich bisher über dieses Thema gelernt habe, stimme ich ihm da vollumfänglich zu.
 
selbst für einen einfachen Web-Server kann man das sehr gut verwenden. Für alles, was beim erneuten Durchführen gleiche, immer wiederkehrende Schitte beinhaltet.

Das kann auch eine einfache Grundinstallation des OS sein, ohne irgendwelche Server-Dienste.

Man _muss_ es nicht verwenden - aber es kann einem das Leben sehr vereinfachen und auch die Qualität der eigenen Arbeit sicherstellen.
 
Last edited by a moderator:
OK, bin mal gespannt, wer von Euch mein 0815-Deployment aus https://www.rootservice.org/howtos/freebsd/mfsbsd_image.html https://www.rootservice.org/howtos/freebsd/remote_install.html und https://www.rootservice.org/howtos/freebsd/hosting_system.html 1:1 in Ansible oder Puppet umsetzen kann und dabei natürlich die Rolling-Releases (inklusive Konfigurationen) berücksichtigt. Wie lange braucht Ihr um Ansible oder Puppet entsprechend zu konfigurieren? Ich brauchte lediglich ein Deployment mitzuschreiben und das Textfile abzuspeichern.

Mich kosten eventuell notwendige Änderungen an meiner simplen Textdatei maximal 10 Sekunden fürs Search-and-Replace, was kostet es Euch bei Ansible oder Puppet?

Das Copy-and-Paste der Befehlsfolgen beim Deployment kostet mich auch nur ein paar Minuten pro Server, das ist zwar trotzdem länger als mit Ansible oder Puppet (wenn sie denn richtig konfiguriert sind), aber für ein gutes Dutzend Deployments pro Woche ist das durchaus verschmerzbar.
 
Ach ja, ganz vergessen: Wenn der Support für meinen Texteditor eingestellt wird oder ich von einem beliebigen anderen Client aus ein Deployment durchführen will oder muss, dann kann ich jeden x-beliebigen Texteditor auf jedem x-beliebigen OS auf jedem x-beliebigen Client (inklusive Smartphone) dafür verwenden ohne irgendetwas, abgesehen vom SSH-Client, extra installieren zu müssen. Mehr Kompatibilität geht nicht...
 
Ich denke hier hat jeder seine eigene Auffassung.

Joe kann mit seinen Text-Dateien leben und kann Vorteile hinsichtlich Lesbarkeit bei auslaufenden Support und die von ihm genannten ausnutzen.

In Umgebungen (auch kleine) unter der Kontrolle von Ansible / Puppet o.ä. ist nach anfänglichem Mehraufwand neben einem schnellen Deployment auch das Konfigurationsmanagement umfangreicher.

Jeder so wie er es in seinen Umgebungen braucht und mag.

Gruß
Markus
 
Back
Top