2.4. Verwenden von Vorlagen


Kickstart-Vorlagen (auch Templates genannt) ermöglichen es Ihnen, Variablen, Snippets und Anweisungen zur Flusskontrolle wie z.B. for-Schleifen und if-Anweisungen in Ihre Kickstart-Dateien einzubeziehen. Ermöglicht wird dies durch das cheetah-Tool.
Es gibt eine Vielzahl von Gründen, warum Vorlagen nützlich sein können:
  • Wenn Sie einen bestimmten Abschnitt einer Kickstart-Datei, wie z.B. den Abschnitt zur Festplattenpartitionierung, über mehrere Kickstarts hinweg wiederverwenden möchten.
  • Wenn Sie bestimme Aktionen in %post konsistent über mehrere Kickstarts hinweg durchführen möchten.
  • Wenn Sie ein Snippet über mehrere Server-Rollen (wie z.B. DNS-Server, Proxy-Server, und Webserver) hinweg definieren möchten. Beispielsweise könnte das folgende Snippet für den Webserver definiert sein:
    httpd
    mod_ssl
    mod_python
    
    Copy to Clipboard Toggle word wrap
    Wenn Sie ein Webserver-Profil erstellen möchten, fügen Sie das Webserver-Snippet im %package-Abschnitt Ihrer Kickstart-Datei ein. Wenn Sie möchten, dass dieses Profil sowohl ein Webserver als auch ein Proxy-Server ist, können Sie beide Snippets im Paketabschnitt einfügen. Möchten Sie später ein weiteres Paket zum Webserver-Snippet hinzufügen, wie z.B. mod_perl, brauchen Sie nur das Snippet selbst zu aktualisieren, und alle Profile, die dieses Snippet enthalten, würden automatisch ebenfalls aktualisiert.
Variablen

Vorlagen ermöglichen es Ihnen, eine Variable zu definieren, die in der gesamten Kickstart-Datei verwendet wird. Variablen unterliegen einer Art Vererbung, die es ermöglicht, eine Variable auf einer Ebene einzustellen, diese jedoch auf darunterliegenden Ebenen außer Kraft zu setzen. Wird also eine Variable auf Systemebene eingestellt, setzt diese dieselbe Variable auf Profilebene oder Kickstart-Baumebene außer Kraft. Wird eine Variable auf Profilebene eingestellt, setzt diese dieselbe Variable auf Kickstart-Baumebene außer Kraft.

Anmerkung

Beachten Sie, dass Kickstart-Baumvariablen nicht für automatisch generierte Kickstart-Bäume (wie z.B. jenen, die Sie durch eine Satellite-Synchronisation erhalten) definiert werden können.
Snippets

Mithilfe von Snippets werden Stücke von Code über mehrere Kickstart-Vorlagen hinweg wiederverwendet. Snippets können sich über mehrere Zeilen erstrecken und Variablen enthalten. Sie können mithilfe des Texts $SNIPPET('snippet_name') in ein Kickstart-Profil eingefügt werden. Sie können ein Snippet für eine Paketliste erstellen, für ein %post-Skript, oder für jeden anderen Text, der normalerweise in einer Kickstart-Datei enthalten ist.

Um Snippets zu verwalten, klicken Sie auf Systeme Kickstart Kickstart-Snippets.
Die Kickstart-Snippets-Seite zeigt mehrere Standard-Snippets, die nicht verändert werden können, jedoch allen Organisationen zur Verfügung stehen. Standard-Snippets können in Kickstarts verwendet werden, die entweder zum RHN Satellite Server hochgeladen wurden oder dort geschrieben wurden. Standard-Snippets sind im Dateisystem des RHN Satellite Servers unter /var/lib/cobbler/snippets/ gespeichert. Unter /var/lib/rhn/kickstarts/wizard/ finden Sie eine Vorlage für einen Assistenten-Kickstart, die die verschiedenen Standard-Snippets und deren Verwendung erklärt.
Das redhat_register Snippet kann dazu verwendet werden, um im Rahmen des Kickstarts Rechner bei einem RHN Satellite Server zu registrieren. Es verwendet eine Variable namens redhat_management_key, um den Rechner beim Server zu registrieren. Setzen Sie die redhat_management_key-Variable auf System-, Profil- oder Distributionsebene und fügen anschließend $SNIPPET('redhat_register') zum %post-Abschnitt Ihrer Kickstart-Datei hinzu. Alle Assistenten-Kickstarts, die vom RHN Satellite Server generiert wurden, verfügen in ihrem %post-Abschnitt bereits über dieses Snippet.
Der Reiter Angepasste Snippets ermöglicht Ihnen das Ansehen und Bearbeiten von Snippets, die für Ihre Organisation erstellt wurden. Sie können neue Snippets erstellen, indem Sie auf Neues Snippet erstellen klicken. Angepasste Snippets werden im /var/lib/rhn/kickstarts/snippets/-Verzeichnis gespeichert. RHN Satellite speichert Snippets für verschiedene Organisationen in verschiedenen Verzeichnissen; angepasste Snippets werden demnach mit einem Dateinamen ähnlich dem folgenden gespeichert, wobei 1 die Organisations-ID ist:
$SNIPPET('spacewalk/1/snippet_name')
Copy to Clipboard Toggle word wrap
Um zu bestimmen, welchen Text Sie in den Kickstart einfügen müssen, um Ihr Snippet zu verwenden, suchen Sie nach der Spalte Snippet Makro in der Snippet-Liste oder auf der Snippet-Detailseite.

Anmerkung

Snippets existieren auf globaler Ebene und besitzen nicht die gleiche Vererbungsstruktur wie Variablen. Sie können Variablen jedoch innerhalb von Snippets verwenden, um deren Verhaltensweisen zu verändern abhängig von dem System, das den Kickstart anfordert.
Kickstart-Snippets

Abbildung 2.3. Kickstart-Snippets

Fluchtsymbole für Sonderzeichen

Die $ und # Zeichen werden bei der Erstellung von Vorlagen zur Spezifizierung von Variablen und der Flusskontrolle verwendet. Falls Sie diese Zeichen in einem Skript für andere Zwecke benötigen, müssen sie mit Fluchtsymbolen versehen werden, damit sie nicht als Variablen gedeutet werden. Sie erreichen dies auf mehrere Arten:

  • Setzen Sie ein Backslash-Zeichen (\) vor jedes $ oder # Zeichen, das in der Vorlage ignoriert werden soll.
  • Schließen Sie das gesamte Skript in #raw ... #end raw ein.
    Alle %pre und %post Skripte, die mithilfe des Kickstart-Assistenten erzeugt werden, sind standardmäßig von #raw...#end raw eingeschlossen. Dies kann geändert werden mittels des Template-Auswahlkästchens beim Bearbeiten eines %post oder %pre-Skripts.
  • Fügen Sie #errorCatcher Echo in der ersten Zeile des Snippets ein.

Beispiel 2.1. Fluchtsymbole für Sonderzeichen in Vorlagen

Dieses Beispiel beschreibt, wie Sonderzeichen in Kickstart-Vorlagen mit Fluchtsymbolen versehen werden.
Das folgende Bash-Skript soll in einem %post-Abschnitt eingefügt werden:
%post 
echo $foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
Wird das $-Zeichen nicht mit einem Fluchtsymbol versehen, wird die Templating-Engine versuchen, eine Variable namens $foo zu finden und wird schließlich scheitern, da foo nicht als Variable existiert.
Der einfachste Weg, das $-Zeichen mit einem Fluchtsymbol zu versehen, ist mithilfe des Backslash-Zeichens (\):
%post 
echo \$foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
Dadurch wird \$foo als $foo gerendert.
Eine zweite Methode ist das Einschließen des gesamten Bash-Skripts in #raw ... #end raw, und zwar wie folgt:
%post 
#raw  
echo $foo > /tmp/foo.txt 
#end raw
Copy to Clipboard Toggle word wrap
Bei der letzten Methode fügen Sie #errorCatcher Echo in der ersten Zeile Ihrer Kickstart-Vorlage ein. Dies weist die Templating-Engine an, jegliche nicht existierenden Variablen zu ignorieren und den Text wie vorliegend auszugeben. Diese Option ist bereits in den Assistenten-Kickstarts enthalten und kann auch in die manuell erstellten Raw-Kickstarts eingefügt werden.
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2026 Red Hat
Nach oben