Sprungmarken

Videoportal der FAU

Die letzten Meldungen

Novell Serverwartung MOLMED am Dienstag, 22 Mai von 8 Uhr bis ca. 11 Uhr

16. Mai 2012

Am Dienstag, 22 Mai findet von 8 Uhr bis voraussichtlich 11 Uhr eine dringende Serverwartung des Novell-Servers “MOLMED” statt. In der genannten Zeit ist der Zugriff auf die Volumes “USERTEMP” und “SYS” nicht möglich.
Weiterlesen...

Terminänderung – Vortrag “Einführung von fau.de-Maildomains und neuen Mail-/Groupware-Komponenten für die FAU” verschoben

15. Mai 2012

Aufgrund von Terminüberschneidungen mussten im Rahmen der Vorlesung “PRAXIS DER DATENKOMMUNIKATION” (Netzwerkausbildung) Termine getauscht werden.
Weiterlesen...

RRZE-Betrieb am „Berch“-Dienstag

15. Mai 2012

Am Dienstag, den 29.05.2012, wird das RRZE ab 12 Uhr geschlossen.
Weiterlesen...

Meldungen nach Thema

 

Cfengine

Was ist cfengine?

Cfengine wurde entwickelt, um größere Menge an Rechnern auf dem gleichen Installations- bzw. Konfigurationsstand zu halten.

Homepage: Externer Link:  Cfengine

Verzeichnisstruktur

Server

/var/cfengine/server/cfservd.conf   Konfigurationsdatei für den Cfengine-Server
/var/cfengine/server/logs   Log-Dateien des Cfengine-Servers
	

Client

/var/cfengine/config	Hier liegen die Dateien fürs Update
/var/cfengine/inputs	Hier liegt die Konfiguration für die Updates
/var/cfengine/outputs
/var/cfengine/ppkeys	Hier werden die Keys von Server und Client abgelegt
	

Vorsicht! Diese Angaben beziehen sich auf das hier erhältliche RPM Paket. Je nach Konfiguration und Compile-Optionen kann sich cfengine anders verhalten.

Konfiguration

Server

Um cfengine verwenden zu können wird ein Server benötigt, der die entsprechende(n) Konfiguration(en) verwaltet.
Das Server-Tool cfservd holt seine Einstellungen aus einer Datei cfservd.conf. Wo er beim Start nach dieser sucht, legt die Umgebungsvariable CFINPUTS fest.


linux ~# export CFINPUTS=/var/cfengine
	

Bei dem bereitgestellten RPM Paket erledigt dies jedoch das dazugehörige Init-Skript. Die eigentliche Server-Konfiguration (s. unten) beinhaltet hauptsächlich Zugriffsberechtigungen und grundlegende Einstellungen.

Vorsicht! Ältere Versionen von cfengine (<2.0.3) hatten Probleme mit der Namensauflösung (z.B. *.uni-erlangen.de)


control:

  domain = ( rrze.uni-erlangen.de )

  AllowConnectionsFrom = ( *.uni-erlangen.de )
  # make sure to use IP addresses here
  TrustKeysFrom = ( 131.188.0.0/16 )
  workdir = ( /var/cfengine )

admit: 

   $(workdir)/inputs		*.rrze.uni-erlangen.de
   $(workdir)/config		*.rrze.uni-erlangen.de
	

Das obige Beispiel für cfservd.conf erlaubt allen Clients der Domain rrze.uni-erlangen.de den Zugriff auf die Verzeichnisse /var/cfengine/inputs und /var/cfengine/config.

Die genauere Konfiguration findet sich im Unterverzeichnis $(workdir)/inputs.

Um deren Aufbau zu verstehen, sollte man einige Hintergrundinformationen besitzen. Wie man an den Beispielen leicht erkennen kann, wird die Konfiguration immer in einzelne Abschnitte unterteilt (control:, resolve:, import:, etc.)

Ferner basieren die Einstellungsmöglichkeiten von cfengine auf verschiedenen Klassen. Diese Klassen lassen sich frei definieren (s. cf.linux.autofs - classes:), es gibt aber eine ganze Reihe von vordefinierten Werten. Dazu gehören unter anderem das Betriebssystem (z.B. "linux", "SuSE"), Informationen über die IP-Adresse des Rechners (z.B. "131_188_3_145", "linux_rrze_uni_erlangen_de"), die Kernel-Version (z.B. "linux_2_4_18_4GB"), Zeitangaben (z.B. "Wednesday", "Hr09", "Min14") , usw.

Diese Klassen lassen sich miteinander verknüpfen. Im Beispiel cf.linux.autofs betreffen die Anweisungen unter linux.autofsinstalled:: nur Linux-Rechner mit installierten autofs. Der . steht dabei für eine UND-Verknüpfung, eine Negierung einzelner Komponenten läßt sich mit ! bewerkstelligen.

Auf der Client-Seite braucht man beim ersten Start zwei Dateien im Verzeichnis /var/cfengine/inputs:

  • update.conf
  • cfagent.conf

update.conf

#######
#
# BEGIN update.conf
#
# This script only distributes the configuration, a simple file so that,
# if there are syntax errors in the main config, we can still
# distribute a correct configuration to the machines afterwards, even
# though the main config won't parse. It is read and run just before the
# main configuration is parsed.
#
#######


control:

 actionsequence  = ( copy tidy )  # Keep this simple and constant

 domain		= ( rrze.uni-erlangen.de )
 workdir	= ( /var/cfengine )
 policyhost	= ( ciplx1.e-technik.uni-erlangen.de )

 master_cfinput	= ( /var/cfengine/server/inputs )
 filedir	= ( /var/cfengine/server/config )

############################################################################

 #
 # Make sure there is a local copy of the configuration and
 # the most important binaries in case we have no connectivity
 # e.g. for mobile stations or during DOS attacks
 #

copy:

        $(master_cfinput)       dest=$(workdir)/inputs
                                r=inf
                                mode=700
                                type=binary
                                exclude=*.lst
                                exclude=*~
                                exclude=#*
                                exclude=.*
                                server=$(policyhost)
                                trustkey=true

#####################################################################

tidy:

     #
     # Make sure we don't choke on our own words!
     #

     $(workdir)/outputs pattern=* age=7

#######
#
# END update.conf
#
#######
	

cfagent.conf

#####################################################################
import:

        #any::          cf.all
        linux::         cf.linux
#####################################################################
	

cf.linux


control:
        actionsequence = ( copy )
        filedir = ( /var/cfengine/server/config )

import:
        any::
                cf.nomoretrust
        linux::
                cf.linux.hosts
                cf.linux.apt
                cf.linux.ssh
                cf.linux.autofs
                cf.linux.inetd
                cf.linux.mozilla
                cf.linux.cron
                cf.linux.x11
	

cf.linux.autofs

classes:
	autofsinstalled = ( '/usr/bin/test -x /usr/sbin/automount' )
	
control:
	actionsequence = ( copy shellcommands )

copy:

	linux.autofsinstalled::
		$(filedir)/linux/etc/auto.master
				dest=/etc/auto.master
				type=checksum
				server=$(policyhost)
				o=root
				g=root
				m=644
				define=autofs_restart
				
		$(filedir)/linux/etc/auto.proj
				dest=/etc/auto.proj
				type=checksum
				server=$(policyhost)
				o=root
				g=root
				m=644
				define=autofs_restart
shellcommands:

	autofs_restart::
		"/etc/init.d/autofs restart"
	

Die Kommandos (wie z.B. unter shellcommands), müssen stets mit komplettem Pfad angegeben werden.

Probleme

Es kann vorkommen, dass sich cfengine --debug --verbose mit einigen der folgenden Fehlermeldungen beschwert:

cfengine:: Another cfengine seems to have done XYZ since I started
	

Sollte du diesem Zeitpunkt keine zweite cfagent Instanz gelaufen sein, dann kann man den Fehler durch das Löschen der Datei /var/cfengine/cfengine_lock_db beseitigen.

Letzte Änderung: 13. Maerz 2012, Historie

zum Seitenanfang

Startseite | Kontakt | Impressum

RRZE - Regionales RechenZentrum Erlangen, Martensstraße 1, D-91058 Erlangen | Tel.: +49 9131 8527031 | Fax: +49 9131 302941

Inhaltenavigation

FAU - Friedrich-Alexander-Universität
UnivIS - Informationssystem der Friedrich-Alexander-Universität Erlangen Nürnberg

Zielgruppennavigation

  1. Studierende
  2. Beschäftigte
  3. Einrichtungen
  4. IT-Beauftragte
  5. Presse & Öffentlichkeit