Puppet - Dateiserver

Puppet folgt dem Konzept von Client und Server, bei dem ein Computer in einem Setup als Server mit Puppet-Serversoftware und der verbleibende als Client mit Puppet-Agentensoftware fungiert. Diese Funktion des Dateiservers hilft beim Kopieren der Dateien auf mehrere Computer. Diese Funktion der Dateiserving-Funktion in Puppet ist Teil des zentralen Puppet-Daemons. Puppetmasterd und die Client-Funktion spielen eine Schlüsselrolle bei der Beschaffung von Dateiattributen als Dateiobjekt.

class { 'java':  
   package               => 'jdk-8u25-linux-x64',  
   java_alternative      => 'jdk1.8.0_25',  
   java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'  
}

Wie im obigen Codefragment abstrahieren die Dateiservingfunktionen von Puppet die lokale Dateisystemtopologie, indem sie das Dateiservicemodul unterstützen. Wir werden das Dateiservingemodul auf folgende Weise spezifizieren.

“puppet://server/modules/module_name/sudoers”

Datei Format

In der Puppet-Verzeichnisstruktur befindet sich standardmäßig die Dateiserverkonfiguration unter /etc/puppet/fileserver.config Verzeichnis, wenn der Benutzer diesen Standardpfad der Konfigurationsdatei ändern möchte, kann dies mit dem neuen Konfigurationsflag auf erfolgen puppetmasterd. Die Konfigurationsdatei ähnelt INI-Dateien, ist jedoch nicht genau gleich.

[module] 
path /path/to/files 
allow *.domain.com 
deny *.wireless.domain.com

Wie im obigen Codeausschnitt gezeigt, werden alle drei Optionen in der Konfigurationsdatei dargestellt. Der Modulname steht etwas in Klammern. Der Pfad ist die einzige erforderliche Option. Die Standardsicherheitsoption besteht darin, den gesamten Zugriff zu verweigern. Wenn also keine Zulassungsleitungen angegeben sind, steht das zu konfigurierende Modul jedem zur Verfügung.

Der Pfad kann einige oder alle% d,% h und% H enthalten, die dynamisch durch den Domänennamen, den Hostnamen und den vollständig qualifizierten Hostnamen ersetzt werden. Alle werden dem SSL-Zertifikat des Clients entnommen (seien Sie also vorsichtig, wenn Hostname und Zertifikatsname nicht übereinstimmen). Dies ist nützlich, um Module zu erstellen, in denen die Dateien jedes Clients vollständig separat aufbewahrt werden. Beispiel für private Hostschlüssel.

[private] 
path /data/private/%h 
allow *

Im obigen Codefragment versucht der Code, vom Client aus nach der Datei /private/file.txt zu suchen client1.vipin.com. Es wird in /data/private/client1/file.txt danach suchen, während dieselbe Anforderung für client2.vipin.com versucht, die Datei /data/private/client2/file.txt auf dem Dateiserver abzurufen.

Sicherheit

Puppet unterstützt die beiden Grundkonzepte zum Sichern von Dateien auf dem Puppet-Dateiserver. Dies wird erreicht, indem der Zugriff auf bestimmte Dateien ermöglicht und der Zugriff auf diejenigen Dateien verweigert wird, die nicht erforderlich sind. Standardmäßig erlaubt Puppet keinen Zugriff auf eine der Dateien. Es muss explizit definiert werden. Das Format, das in den Dateien verwendet werden kann, um den Zugriff zuzulassen oder zu verweigern, ist die Verwendung von IP-Adresse, Name oder globaler Erlaubnis.

Wenn der Client nicht direkt mit dem Puppet-Dateiserver verbunden ist, z. B. über einen Reverse-Proxy und Mongrel, sieht der Dateiserver, dass alle Verbindungen vom Proxyserver und nicht vom Puppet-Client stammen. In den oben genannten Fällen empfiehlt es sich, den Hostnamen auf der Basis des Hostnamens einzuschränken.

Ein wichtiger Punkt beim Definieren der Dateistruktur ist, dass alle Verweigerungsanweisungen vor der allow-Anweisung analysiert werden. Wenn also eine Verweigerungsanweisung mit einem Host übereinstimmt, wird dieser Host abgelehnt, und wenn in den kommenden Dateien keine Erlaubnisanweisung geschrieben ist, wird der Host abgelehnt. Diese Funktion hilft beim Festlegen der Priorität einer bestimmten Site.

Hostname

In jeder Dateiserverkonfiguration kann der Datei-Hostname auf zwei Arten angegeben werden, entweder unter Verwendung eines vollständigen Hostnamens oder durch Angabe eines gesamten Domänennamens mithilfe des Platzhalters *, wie im folgenden Beispiel gezeigt.

[export] 
path /usr 
allow brcleprod001.brcl.com 
allow *.brcl.com 
deny brcleprod002.brcl.com

IP Adresse

In jeder Dateiserverkonfiguration kann die Dateianschrift ähnlich wie die Hostnamen angegeben werden, wobei entweder die vollständige IP-Adresse oder die Platzhalteradresse verwendet wird. Man kann auch die CIDR-Systemnotation verwenden.

[export] 
path /usr 
allow 127.0.0.1 
allow 172.223.30.* 
allow 172.223.30.0/24

Globales Zulassen

Die globale Erlaubnis wird verwendet, wenn der Benutzer möchte, dass jeder auf ein bestimmtes Modul zugreifen kann. Zu diesem Zweck hilft ein einziger Platzhalter dabei, dass jeder auf das Modul zugreifen kann.

[export] 
path /export 
allow *