GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Massen-/Remoteverwaltung

Es kommt darauf an, was genau Sie brauchen und wonach Sie suchen. Aber im Allgemeinen gibt es mehrere Lösungen für "Konfigurationsmanagement wie:

  1. Marionette
  2. Koch
  3. cfengine
  4. ansibel
  5. Salz

usw. Ich persönlich würde Puppet empfehlen, da es eine große Community und viele extern bereitgestellte Rezepte hat. Auf diese Weise können Sie Systeme automatisch konfigurieren und verwalten. Kombiniert man dies mit eigenen Repositories und automatisierten Updates über z.B. unattended-upgrades Sie können das System automatisch aktualisieren.

Eine andere Lösung besteht darin, einfach Ihre eigenen Pakete wie company-base bereitzustellen etc. welches automatisch von der notwendigen Software abhängt und Ihr System automatisch konfigurieren kann.

Sie sollten sich auch mit automatisierten Bereitstellungen (Barebone und virtualisiert) befassen. Wenn Sie dies mit einem Konfigurationsmanagement oder einem eigenen Repository kombinieren, können Sie Ihre Systeme einfach automatisieren und neu installieren. Wenn Sie mit der automatisierten Installation beginnen möchten, schauen Sie sich theforman an, das sowohl libvirt- als auch Bare-Bone-Installationen unterstützt und Puppet-Unterstützung integriert hat. Wenn Sie es selbst tun möchten, können Sie sich Kickstart (Redhat et. al.) oder "Preseeding" ansehen, um Ihr System automatisch zu konfigurieren. Für Debian können Sie auch so etwas wie debootstrap oder einen Wrapper namens grml-debootstrap verwenden, der virtualisierte Images unterstützt.

Um die Bereitstellung der VirtualBox-Images für Ihre Entwickler zu erleichtern, werfen Sie einen Blick auf vagrant. Es ermöglicht Ihnen, die Erstellung virtualisierter Systeme zu automatisieren, wobei VirtualBox Chef-, Puppet- und Shell-Skripte unterstützt, um Ihre virtuelle Umgebung anzupassen.

Wenn Sie die Lösung Ihres bestehenden Anbieters verwenden möchten, sollten Sie ihn fragen, wie er Ihre Systeme verwaltet, aber es wird wahrscheinlich eine Art Konfigurationsmanagement sein. Es ist möglicherweise möglich, ihren Agenten auf Ihren Systemen auszuführen, wenn Sie auf den Konfigurationsserver zugreifen können.

Für Google-Keywords schauen Sie in devops , configuration management , it automation und server orchestration .

Kurz gesagt, automatisieren Sie so viel wie möglich und denken Sie nicht einmal daran, Dinge manuell zu erledigen.


Ulrich hat bereits die Antwort bezüglich Softwarebereitstellung und automatisierter Servereinrichtung gegeben.

Die Prinzipien dahinter sind

  • Definieren Sie, wie Ihre Server aussehen sollen - dazu gehören gängige Software, die standardmäßig installiert wird, das Partitionierungsschema und das Dateisystem-Layout
  • Produktions-, Staging-, Test- und Entwicklungsserver sollten sich in Bezug auf diese grundlegenden Standards nicht unterscheiden (andernfalls werden Sie später auf Probleme stoßen - wie Sie es getan haben)
  • Verwenden Sie ein angemessenes Änderungsmanagement, um ALLE von Ihnen vorgenommenen Änderungen zu dokumentieren (einschließlich winziger einzeiliger Änderungen in jeder Konfiguration)
  • Wechseln Sie immer zuerst im Test, dann in der Entwicklung, dann im Staging und zuletzt in der Produktion

Sie haben nach einem praktischen Tool gefragt, um Massen von Servern zu verwalten - mein persönlicher Favorit ist cluster-ssh (cssh ). Einmal eingeben und Änderungen auf vielen Servern gleichzeitig vornehmen.

Wenn Sie ein Problem entdecken und eine Lösung dafür haben, die das Problem behebt:

  1. Wenden Sie den Fix auf Test/Dev/Staging/Prod (siehe oben) an, wenn er wirklich funktioniert
  2. Wenden Sie den Fix auf Ihre virtuellen Vorlagen an, damit zukünftige VM-Klone diesen Fehler nicht mehr haben
  3. Wenden Sie den Fix auf Ihren physischen Installationsprozess an (Kickstart/autoyast/was auch immer)
  4. Wenden Sie den Fix auf ALLE Server an

Wenn Sie mit einer Vielzahl von Servern konfrontiert sind, die behoben werden müssen, ist dies ein Prozess, der gut dokumentiert werden muss, und am Ende sollte ein anderes Team überprüfen, ob der Fix vollständig angewendet wurde.

Dazu setzen wir Mantis (Open Source, PHP) ein.


Ich verwalte ungefähr 30 Produkte und einige hundert Server in mehreren Ländern. Ich bin der Software-Konfigurationsmanager, habe also keinen Root-Zugriff (absichtlich), berühre die Datenbanken oder ihre Server nicht (wiederum absichtlich) und muss wegen der Unternehmenssicherheit viel herumspringen. Aber ich verwalte die Konfigurationen in Test, Staging und Produktion, einschließlich Datenbankverknüpfungen und Änderungen. Ich habe eine Reihe von Skripten, die mit Kombinationen von ssh an Server gesendet werden , python und Shell-Skripte.

Die wichtigsten Dinge, an die Sie denken sollten, sind:

  1. Welche Arten von Interaktionen werden Sie mit Ihren Servern haben? Nur Datei-Uploads? Ausführen von Befehlszeilenprogrammen? Laufen entfernte X-Clients?
  2. Welches Sicherheitsniveau ist für den Zugriff auf diese Server erforderlich? Firewalls, sichere Netzwerke, VPN? Ist ssh ausreichend und von einem zentralen sicheren Ort?
  3. Wie viel kann auf jedem Server automatisiert werden? Können Sie ein Programm auf jedem Server installieren und ausführen, oder müssen Sie das Programm über so etwas wie ssh streamen um es aus der Ferne auszuführen? Können Sie es mit expect skripten oder nur ein Befehlszeilenaufruf?

VirtualBox bietet viele Befehlszeilentools, die Sie mit nur ssh verwalten können oder Systeme wie puppet wie Ulrich erwähnt.


Linux
  1. So mounten Sie die Remote-Windows-Freigabe unter Linux

  2. Erzwingen Sie einen Neustart eines Remote-Linux-Servers

  3. Linux Massen-/Remoteverwaltung?

  4. Wie füge ich eine Remote-MySQL-Verbindung unter Linux hinzu?

  5. Linux-Kernel-Timer ändern

So konfigurieren Sie ein VLAN unter Linux

So sichern Sie Linux-Server mit SE Linux

So laden Sie Dateien von Remote-Linux-Servern herunter

Vollständiges Handbuch zur Benutzerverwaltung unter Linux

Verwaltung des Netzwerkdateisystems (NFS) unter Linux

Gewusst wie:FreeBSD-Fernverwaltung