2.4. Plantilla
for y declaraciones if en los archivos kickstart. Esto se realiza mediante la herramienta cheetah.
- Para reutilizar una sección específica de un kickstart, tal como una sección de particionamiento de disco, entre múltiples kickstarts.
- Para realizar algunas acciones
%postde forma consistente a través de varios kickstarts. - Para definir un fragmento a través de varios roles de servidor tales como un servidor DNS, un servidor proxy y un servidor de red. Por ejemplo, un servidor de red tiene el siguiente fragmento definido:
httpd mod_ssl mod_python
httpd mod_ssl mod_pythonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si desea crear un perfil de servidor de red, incluya el fragmento de servidor de red en la sección%packagede su archivo Kickstart. Para que un perfil sea tanto servidor de red como servidor de proxy, incluya ambos fragmentos en la sección de paquetes. Si desea añadir otro paquete al fragmento de servidor de red,mod_perlpor ejemplo, actualice el fragmento y todos los perfiles que lo están utilizando se actualizarán de forma dinámica.
La plantilla permite definir una variable que va a ser utilizada a través de un archivo kickstart. Las variables están sujetas a una forma de herencia que les permite establecerse en un nivel y sobrescribirse en niveles inferiores. Por lo tanto, si una variable se define a nivel del sistema, sobrescribirá la misma variable definida en el perfil o niveles de árbol kickstart. De la misma manera, si se define una variable en el nivel de perfil, sobrescribirá la misma variable definida en el nivel de árbol kickstart.
Nota
Los fragmentos reutilizan partes del código entre varias plantillas kickstart. Estas pueden extender muchas líneas e incluir variables. Pueden incluirse en un perfil kickstart mediante el texto $SNIPPET('snippet_name'). Puede crear un fragmento para una lista de paquetes, para un %post script o para cualquier texto que normalmente se incluiría en un archivo kickstart.
/var/lib/cobbler/snippets/. Hay una plantilla del kickstart con asistente de estilo en /var/lib/rhn/kickstarts/wizard/, la cual explica los diferentes fragmentos y su uso.
redhat_register es un fragmento predeterminado que sirve para registrar máquinas a un servidor de Satélite de RHN como parte de un kickstart. Utiliza una variable especial llamada redhat_management_key para registrar la máquina. Para usar el fragmento, establezca la variable redhat_management_key en cualquier sistema, perfil o nivel de distribución y luego añada $SNIPPET('redhat_register') a una sección de kickstart %post. Cualquier kickstart con asistente de estilo generado por el servidor de Satélite de RHN ya incluirá el fragmento en la sección %post.
/var/lib/rhn/kickstarts/snippets/. El servidor de Satélite de RHN almacena fragmentos para diferentes organizaciones en diferentes directorios, con el fin de que los fragmentos personalizados sean almacenados con un nombre de archivo similar al siguiente, donde 1 es la ID de la organización:
$SNIPPET('spacewalk/1/snippet_name')
$SNIPPET('spacewalk/1/snippet_name')
Nota
Figura 2.3. Fragmentos Kickstart
Los caracteres $ y # se utilizan durante el plantillado para especificar variables y controlar el flujo. Si necesita estos caracteres para cualquier otro propósito en un script, necesitará escaparlos para que no sean reconocidos como variables. Esto se puede realizar en varias formas:
- Sitúe un carácter de barra invertida (
\) antes de cada instancia de$o#que necesite ser ignorada durante el emplantillado. - Envuelva el script entero en
#raw ... #end rawTodos los scripts%prey%postcreados mediante los Kickstarts con asistentes de estilo vienen en#raw...#end rawpor defecto. Esto se puede alternar mediante la casilla de verificación de Plantilla disponible durante la edición de un script%posto%pre. - Incluya
#errorCatcher Echoen la primera línea del fragmento.
Ejemplo 2.1. Escape de caracteres especiales en plantillas
%post:
%post echo $foo > /tmp/foo.txt
%post
echo $foo > /tmp/foo.txt
$, el motor de plantilla tratará de hallar una variable llamada $foo y fallará debido a que foo no existe como variable.
$ es utilizar un caracter de doble barra invertida (\):
%post echo \$foo > /tmp/foo.txt
%post
echo \$foo > /tmp/foo.txt
\$foo se procese como $foo.
#raw ... #end raw, así
%post #raw echo $foo > /tmp/foo.txt #end raw
%post
#raw
echo $foo > /tmp/foo.txt
#end raw
#errorCatcher Echo en la primera línea de su plantilla kickstart. De este modo le pide al motor de plantilla que ignore las variables inexistentes y que imprima el texto tal como está. Esta opción ya se incluye en los kickstart con asistente de estilo, pero también se puede incluir en los kickstart crudos que usted mismo crea.