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
%post
de 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_python
Copy 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%package
de 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_perl
por 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 raw
Todos los scripts%pre
y%post
creados mediante los Kickstarts con asistentes de estilo vienen en#raw...#end raw
por defecto. Esto se puede alternar mediante la casilla de verificación de Plantilla disponible durante la edición de un script%post
o%pre
. - Incluya
#errorCatcher Echo
en 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.