Installieren und Verwenden von CFEngine Community Edition unter Ubuntu 14.04

Einführung

Wenn Sie ein schnelles und hoch skalierbares Konfigurationsmanagement-Tool für Ihre IT-Infrastruktur suchen, sollten Sie CFEngine ausprobieren. Obwohl die angebotenen Funktionen denen anderer beliebter Tools wie Puppet und Chef ziemlich ähnlich sind, hat CFEngine sowohl hinsichtlich des Arbeitsspeichers als auch der CPU-Auslastung einen wesentlich geringeren Platzbedarf und ist im Allgemeinen schneller, da es in C geschrieben ist und daher ausgeführt wird nativ auf dem Betriebssystem.

In diesem Tutorial erfahren Sie, wie Sie CFEngine Community Edition 3.6.5 unter Ubuntu 14.04 installieren und verwenden.

Voraussetzungen

Bevor Sie beginnen, sollten Sie Zugriff auf Folgendes haben:

Schritt 1 - Hinzufügen der Paket-Repositorys von CFEngine

Um die neueste Version von CFEngine mit "+ apt-get " zu installieren, sollten Sie die Paket-Repositorys von CFEngine zur Repository-Liste Ihres Servers hinzufügen. Verwenden Sie dazu den Befehl ` add-apt-repository`:

sudo add-apt-repository 'deb http://cfengine.com/pub/apt/packages stable main'

Schritt 2 - Hinzufügen des öffentlichen Schlüssels von CFEngine

Das Repository, das Sie im vorherigen Schritt hinzugefügt haben, kann erst verwendet werden, wenn Sie den öffentlichen Schlüssel von CFEngine zur Liste der vertrauenswürdigen Schlüssel von APT hinzugefügt haben.

Laden Sie den öffentlichen Schlüssel von CFEngine mit + wget + herunter.

wget http://cfengine.com/pub/gpg.key -O /tmp/gpg.key

Verwenden Sie "+ apt-key", um es der Liste der vertrauenswürdigen Schlüssel hinzuzufügen.

sudo apt-key add /tmp/gpg.key

Schritt 3 - Installieren von CFEngine

Sie können jetzt "+ apt-get +" verwenden, um die CFEngine Community Edition zu installieren.

sudo apt-get update && sudo apt-get install cfengine-community

Bevor Sie fortfahren, überprüfen Sie die Installation:

cf-agent --version

Sie sollten die folgende Ausgabe sehen:

Ausgabe von cf-agent

CFEngine Core 3.6.5

Schritt 4 - Starten des Policy Hub

Da wir in diesem Lernprogramm einen einzelnen Ubuntu-Server verwenden, wird dieser sowohl als Policy Hub als auch als Client verwendet. Um den Policy Hub von CFEngine zu starten, müssen Sie ihn mit der IP-Adresse Ihres Servers booten.

sudo cf-agent --bootstrap

Sobald dieser Befehl erfolgreich ausgeführt wurde, ist CFEngine vollständig konfiguriert und kann auf Ihrem Server verwendet werden.

Schritt 5 - Erstellen Sie Ihre erste Richtlinie

Um eine Systemverwaltungsaufgabe mit CFEngine zu automatisieren, sollten Sie eine Richtliniendatei dafür erstellen. Eine Richtliniendatei wird in der DSL-Sprache (Domain Specific Language) von CFEngine erstellt. Die Sprache hat eine ziemlich steile Lernkurve, aber es ist einfach, grundlegende Aufgaben damit zu erledigen.

Beginnen wir mit der Erstellung einer einfachen "Hello World" -Richtlinie. Verwenden Sie "+ nano " oder Ihren bevorzugten Texteditor, um eine neue Datei mit dem Namen " myPolicy.cf " im Verzeichnis " / tmp +" zu erstellen:

nano /tmp/myPolicy.cf

Die Befehle, die Sie mit CFEngine ausführen möchten, sollten in einem Bundle zusammengefasst werden. Es gibt verschiedene Arten von Bundles. Im Moment erstellen Sie ein Paket, mit dem + c & f-agent Spaß macht. Um eine Nachricht an die Konsole zu drucken, sollte das Versprechen "+ reports +" verwendet werden. Fügen Sie der Datei daher den folgenden Code hinzu:

myPolicy.cf

bundle agent SayHello {
   reports:
       "Hello!";
}

Speichern Sie die Datei und beenden Sie sie.

Sie können Ihre Richtlinie jetzt mit dem Befehl + cf-agent ausführen.

sudo cf-agent -b SayHello /tmp/myPolicy.cf

Sie sollten die folgende Ausgabe sehen:

Ausgabe von cf-agent

R: Hello!

Schritt 6 - Hinzufügen einer Richtlinie zum Richtlinienserver

Im vorherigen Schritt haben Sie die Richtlinie mit dem Befehl + cf-agent + manuell ausgeführt. Um die Richtlinie automatisch und vor allem auf mehreren Computern auszuführen, sollten Sie sie dem Richtlinienserver hinzufügen. Standardmäßig werden dem Server hinzugefügte Richtlinien alle 5 Minuten von + cf-agent + ausgeführt.

Lassen Sie uns nun eine etwas fortgeschrittenere Richtlinie schreiben, die eine Datei im Verzeichnis "+ / tmp +" erstellt.

Verwenden Sie "+ nano " oder Ihren bevorzugten Texteditor, um eine neue Datei mit dem Namen " createFilePolicy.cf +" zu erstellen:

nano /tmp/createFilePolicy.cf

In dieser Richtlinie verwenden Sie das Versprechen "+ files ", um eine Datei zu erstellen, und das Versprechen " reports +", um eine Meldung anzuzeigen, die besagt, dass die Datei erstellt wurde.

Die folgende Richtlinie erstellt eine leere Datei mit dem Namen "+ hello.txt " im Verzeichnis " / tmp +". Fügen Sie der Richtlinie den folgenden Code hinzu:

createFilePolicy.cf

bundle agent CreateHelloFile {
  files:
     "/tmp/hello.txt"
       create => "true";

  reports:
     "File created";
}

Speichern Sie Ihre Datei und beenden Sie + nano +.

Führen Sie die Richtlinie aus, indem Sie den folgenden Befehl eingeben:

sudo cf-agent -b CreateHelloFile /tmp/createFilePolicy.cf

Nachdem dies abgeschlossen ist, können Sie den Befehl "+ ls " ausführen, um festzustellen, dass " hello.txt " in " / tmp +" erstellt wurde.

ls /tmp

Nachdem wir wissen, dass unsere Richtlinie keine Fehler enthält und das tut, was sie tun soll, fügen wir sie dem Server hinzu.

Der Policy Server liefert seine Policies aus dem Verzeichnis + / var / cfengine / masterfiles / +. Kopieren Sie daher + createFilePolicy.cf + nach + masterfiles +:

sudo cp /tmp/createFilePolicy.cf /var/cfengine/masterfiles/

Damit CFEngine über Ihre Richtliniendatei und das darin enthaltene Bundle informiert wird, sollten Verweise auf diese Dateien zu + promises.cf +, der wichtigsten Richtliniendatei von CFEngine, hinzugefügt werden. Verwenden Sie + nano +, um + promises.cf + zu bearbeiten:

sudo nano /var/cfengine/masterfiles/promises.cf

Fügen Sie den Namen Ihrer Richtliniendatei am Ende der Liste "+ Eingänge +" hinzu. Nach den Änderungen sollte die Liste folgendermaßen aussehen:

verspricht

inputs => {

   ...

 # List of services here
 "services/file_change.cf",


};

Stellen Sie sicher, dass Sie das Komma am Ende der Zeile nicht auslassen.

Darüber hinaus sollte der Name des Bundles in Ihrer Richtliniendatei in der Liste "+ bundlesequence " oben in der Datei angegeben werden. Fügen Sie ` CreateHelloFile ` als letzten Eintrag von ` bundlesequence +` hinzu:

verspricht

bundlesequence => {

    ...

    # Agent bundle
     cfe_internal_management,   # See cfe_internal/CFE_cfengine.cf
     service_catalogue,
     @(cfengine_enterprise_hub_ha.management_bundles),



};

Stellen Sie sicher, dass Sie auch das Komma am Ende der Zeile nicht auslassen. Speichern Sie die Datei und beenden Sie sie.

Ihre Richtlinie wurde dem Richtlinienserver hinzugefügt und wird alle fünf Minuten ausgeführt. Das bedeutet, dass CFEngine die Datei nach fünf Minuten automatisch neu erstellt, selbst wenn Sie "+ / tmp / hello.txt +" löschen.

Wenn Sie die Richtlinie entfernen möchten, müssen Sie zuerst den Namen des Bundles und den Namen der Richtliniendatei aus "+ promises.cf " löschen und dann die Richtliniendatei aus dem Verzeichnis " masterfiles +" verschieben.

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie die neueste Version von CFEngine Community Edition unter Verwendung der CFEngine-Paket-Repositorys auf einem Ubuntu 14.04-Server installieren. Sie haben auch gelernt, wie Sie einfache Richtlinien manuell und automatisch erstellen und ausführen. Sie können jetzt CFEngine verwenden, um die Konfiguration Ihres Servers zu verwalten.

Weitere Informationen zu DSL finden Sie im CFEngine 3.6 Manual.

Related