Solaris 9: Guía de instalación

Capítulo 24 Uso de las funciones opcionales de JumpStart personalizado (tareas)

En este capítulo se explican las funciones opcionales disponibles para crear herramientas adicionales para la instalación JumpStart personalizada.


Nota –

Las instrucciones de este capítulo se aplican a servidores SPARC y x86 que se usen para proporcionar archivos JumpStart personalizados, que son los denominados servidores de perfiles. Éstos pueden proporcionar archivos de JumpStart personalizados a diferentes tipos de plataformas. Por ejemplo, un servidor SPARC puede proporcionar archivos de JumpStart personalizados a sistemas SPARC y x86.


Creación de secuencias de inicio

Una secuencia de inicio es una secuencia del shell Bourne definida por el usuario que se especifica en el archivo rules; realiza tareas antes de que se instale el software Solaris en un sistema, pero sólo se pueden usar cuando se emplee el programa JumpStart personalizado para instalar el software Solaris.

Use una secuencia de inicio para realizar una de las tareas siguientes:

Información importante sobre las secuencias de inicio

Creación de perfiles derivados con una secuencia de inicio

Un perfil derivado es un perfil creado de forma dinámica por una secuencia de inicio durante una instalación JumpStart personalizada. Los perfiles derivados se necesitan cuando no se puede configurar el archivo rules donde buscar concordancias de sistemas específicos con un perfil. Por ejemplo, es posible que los perfiles derivados sean necesarios para modelos de sistemas idénticos que tengan componentes de hardware diferentes, como los sistemas con memorias intermedias de trama diferentes.

Para configurar una regla para que use un perfil derivado deberá realizar las siguientes tareas:

Cuando un sistema concuerda con una regla cuyo campo de perfil es un símbolo igual (=), la secuencia de inicio crea el perfil derivado que se usa para instalar el software Solaris en el sistema.

A continuación se ofrece un ejemplo de secuencia de inicio que crea el mismo perfil derivado en cada ocasión. Se puede escribir una secuencia de inicio para crear perfiles derivados diferentes que dependen de la evaluación de las reglas.


Ejemplo 24–1 Una secuencia de inicio que crea un perfil derivado

#!/bin/sh
echo "install_type        initial_install"> ${SI_PROFILE}
echo "system_type         standalone">> ${SI_PROFILE}
echo "partitioning        default">> ${SI_PROFILE}
echo "cluster             SUNWCprog">> ${SI_PROFILE}
echo "package       SUNWman     delete">> ${SI_PROFILE}
echo "package       SUNWolman   delete">> ${SI_PROFILE}
echo "package       SUNWxwman   delete">> ${SI_PROFILE}

En el ejemplo, la secuencia de inicio debe usar la variable de entorno SI_PROFILE para el nombre del perfil derivado, que se fija en /tmp/install.input de forma predeterminada.



Nota –

Si se usa una secuencia de inicio para crear un perfil derivado, compruebe que la secuencia no tiene errores. Los perfiles derivados no se verifican con la secuencia check porque no se crean hasta que se ha ejecutado la secuencia de inicio.


Creación de secuencias de fin

Una secuencia de fin es una secuencia del shell Bourne definida por el usuario que se especifica en el archivo rules; realiza tareas una vez instalado el software Solaris, pero antes de que se reinicie el sistema, y se puede utilizar solamente cuando se usa el programa JumpStart personalizado para la instalación de Solaris.

Tareas que se pueden realizar con una secuencia de fin:

Información importante sobre las secuencias de fin

Para agregar archivos con una secuencia de fin

Mediante una secuencia de fin se pueden agregar archivos del directorio JumpStart a un sistema ya instalado. Puede agregar los archivos porque el directorio JumpStart está montado en el directorio que especifica la variable de entorno SI_CONFIG_DIR. El directorio se fija en /tmp/install_config de forma predeterminada.


Nota –

También se pueden sustituir los archivos, copiándolos desde el directorio JumpStart a los archivos ya existentes del sistema instalado.


  1. Copie todos los archivos que agrega al sistema instalado en el directorio JumpStart.

  2. Introduzca la línea siguiente en la secuencia de fin de cada archivo que desea que se copie en la jerarquía del sistema de archivos recién instalado:

    cp ${SI_CONFIG_DIR}/nombre_archivo/a/nombre_ruta
    

Por ejemplo, supóngase que dispone de una aplicación especial site_prog desarrollada para todos los usuarios de la sede. Si coloca una copia de site_prog en el directorio de JumpStart, la línea siguiente de una secuencia de fin copia site_prog desde el directorio de JumpStart en un directorio /usr/bin del sistema:

cp ${SI_CONFIG_DIR}/site_prog  /a/usr/bin

Adición de paquetes o modificaciones con una secuencia de fin

Se puede crear una secuencia de fin para que agregue paquetes o modificaciones automáticamente después de instalar el software Solaris en el sistema. Al agregar paquetes con una secuencia de fin, se reduce el tiempo y se garantiza la coherencia en los paquetes y las modificaciones que se instalen en sistemas diferentes de la sede.

Al usar los comandos pkgadd(1M) o patchadd(1M) en las secuencias de fin, use la opción -R para especificar /a como ruta raíz.


Ejemplo 24–2 Adición de paquetes con una secuencia de fin

  #!/bin/sh

  BASE=/a
  MNT=/a/mnt
  ADMIN_FILE=/a/tmp/admin

  mkdir ${MNT}
  mount -f nfs sherlock:/export/package ${MNT}1
  cat>${ADMIN_FILE} <<DONT_ASK2
  mail=root
  instance=overwrite
  partial=nocheck
  runlevel=nocheck
  idepend=nocheck
  rdepend=nocheck
  space=ask
  setuid=nocheck
  conflict=nocheck
  action=nocheck
  basedir=default
  DONT_ASK

  /usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz3
  umount ${MNT}
  rmdir ${MNT}
  1. Monta un directorio en un servidor que contiene el paquete que se va a instalar.

  2. Crea un archivo de administración de paquetes temporal, admin, para obligar al comando pkgadd(1M) a que no realice comprobaciones ni haga preguntas durante la instalación de un paquete. El archivo temporal de administración de paquetes se utiliza para realizar una instalación automática durante la adición de paquetes.

  3. Agrega los paquetes con la opción -a, que especifica el archivo de administración de paquetes, y la opción -R, que especifica la ruta de la raíz.



Ejemplo 24–3 Adición de modificaciones con una secuencia de fin

 #!/bin/sh

########
#
# USER-CONFIGURABLE OPTIONS
#
########

# The location of the patches to add to the system after it's installed.
# The OS rev (5.x) and the architecture (`mach`) will be added to the
# root.  For example, /foo on a 2.6 SPARC would turn into /foo/5.6/sparc
LUPATCHHOST=ins3525-svr
LUPATCHPATHROOT=/export/solaris/patchdb
#########
#
# NO USER-SERVICEABLE PARTS PAST THIS POINT
#
#########

BASEDIR=/a

# Figure out the source and target OS versions
echo Determining OS revisions...
SRCREV=`uname -r`
echo Source $SRCREV

LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach`

#
# Add the patches needed
#
echo Adding OS patches
mount $LUPATCHHOST:$LUPATCHPATH /mnt>/dev/null 2>&1
if [ $? = 0 ] ; then
	for patch in `cat /mnt/*Recommended/patch_order` ; do
		(cd /mnt/*Recommended/$patch ; echo yes | patchadd -u -d -R $BASEDIR .)
	done
	cd /tmp
	umount /mnt
else
	echo "No patches found"
if


Nota –

Antes se usaba el comando chroot(1M) con los comandos pkgadd y patchadd en el entorno de secuencias de fin. En raras ocasiones, algunos paquetes o modificaciones no funcionan con la opción -R. Debe crear un archivo /etc/mnttab ficticio en la ruta de raíz /a antes de emitir el comando chroot.

Para crear un archivo /etc/mnttab ficticio, agregue la línea siguiente a la secuencia de inicio:

cp /etc/mnttab /a/etc/mnttab

Personalización del entorno raíz con una secuencia de fin

También es posible usar las secuencias de fin para personalizar archivos ya instalados en el sistema. Por ejemplo, la secuencia de fin del Ejemplo 24–4 personaliza el entorno raíz, añadiendo información al archivo .cshrc del directorio raíz (/).


Ejemplo 24–4 Personalización del entorno raíz con una secuencia de fin

#!/bin/sh
#
# Customize root's environment
#
echo "***adding customizations in /.cshrc"
test -f a/.cshrc || {
cat>> a/.cshrc <<EOF
set history=100 savehist=200 filec ignoreeof prompt="\$user@`uname -n`> "
alias cp cp -i
alias mv mv -i
alias rm rm -i
alias ls ls -FC
alias h history
alias c clear
unset autologout
EOF
}

Establecimiento de una contraseña raíz con una secuencia de fin

Una vez instalado el software Solaris en el sistema, éste se rearranca. Antes de que finalice el proceso de arranque, el sistema pide la contraseña raíz. El sistema no podrá concluir el arranque hasta que alguien finalice el arranque.

Una secuencia de fin denominada set_root_pw se guarda en el directorio auto_install_sample. La secuencia de fin muestra cómo fijar automáticamente la contraseña raíz, sin necesidad de indicador. set_root_pw se muestra en el Ejemplo 24–5.


Ejemplo 24–5 Configuración de la contraseña raíz del sistema con una secuencia de fin

	 #!/bin/sh
	 #
	 #       @(#)set_root_pw 1.4 93/12/23 SMI
	 #
	 # This is an example Bourne shell script to be run after installation.
	 # It sets the system's root password to the entry defined in PASSWD.
	 # The encrypted password is obtained from an existing root password entry
	 # in /etc/shadow from an installed machine.

	 echo "setting password for root"

	 # set the root password
 PASSWD=dKO5IBkSF42lw
	 #create a temporary input file1
 cp /a/etc/shadow /a/etc/shadow.orig2

	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )3
           printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,passwd,$3,$4,$5,$6,$7,$8,$9
      else
		        printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9
      }' passwd="$PASSWD" /a/etc/shadow.orig> /a/etc/shadow
 #remove the temporary file
 rm -f /a/etc/shadow.orig4
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5
  mv /tmp/state.$$ ${SI_SYS_STATE}
  1. Fija la variable PASSWD en una contraseña raíz encriptada que se obtiene de una entrada existente en un archivo /etc/shadow del sistema.

  2. Crea un archivo de entrada temporal de /a/etc/shadow.

  3. Cambia la entrada raíz del archivo /etc/shadow por el sistema recién instalado con $PASSWD como campo de contraseña.

  4. Retira el archivo temporal /a/etc/shadow.

  5. Cambia la entrada de 0 a 1 en el archivo de estado para que no se le pida al usuario la contraseña raíz. Es posible acceder al archivo de estado mediante la variable SI_SYS_STATE, que tiene un valor actual de /a/etc/.sysIDtool.state. Para evitar problemas con las secuencias si cambia este valor, haga siempre referencia a este archivo con la variable de entorno $SI_SYS_STATE. El comando sed que aparece aquí contiene un carácter de tabulación después de 0 y después de 1.



Nota –

Si fija la contraseña raíz del sistema con una secuencia de fin, los usuarios podrían intentar descubrir la contraseña raíz desde la contraseña encriptada en la secuencia de fin. Procure proteger el sistema a fin de que los usuarios no puedan descubrir la contraseña raíz.


Instalación de software con los programas de instalación Web Start con secuencias de fin

Se pueden usar las secuencias de fin para instalar software adicional después de instalar el sistema operativo Solaris. Algunos programas de software los instala el programa Solaris Web Start, que solicita la introducción de información durante la instalación. Para automatizar la instalación, puede ejecutar el programa Solaris Web Start con las opciones -nodisplay o -noconsole.

Tabla 24–1 Opciones de Solaris Web Start

Opción 

Descripción  

-nodisplay

Ejecuta el instalador sin interfaz gráfica de usuario. Use la instalación predeterminada del producto, salvo que se hubiera modificado con la opción -locales.

-noconsole

Ejecuta la instalación sin un dispositivo de consola de texto interactivo. Es útil cuando se usa junto con la opción -nodisplay para el uso con secuencias UNIX.

Para obtener más información, consulte la página de comando man installer (1M).

Creación de un archivo de configuración comprimido

En lugar de usar el comando add_install_client para especificar la ubicación de los archivos de configuración de JumpStart personalizado, es posible especificar la ubicación de los archivos al arrancar el sistema. Sin embargo, sólo se puede especificar el nombre de un archivo al emitir el comando boot. Por tanto, deberá comprimir todos los archivos de configuración del programa JumpStart personalizado en un solo archivo. El archivo de configuración comprimido puede ser de uno de los siguientes tipos:

Para crear un archivo de configuración comprimido

  1. Cambie el directorio de JumpStart del servidor de perfiles.


    # cd ruta_directorio_jumpstart
    
  2. Use una herramienta de compresión para comprimir los archivos de configuración de JumpStart en un solo archivo.


    Nota –

    El archivo de configuración comprimido no puede contener rutas relativas. Los archivos de configuración de JumpStart personalizado deben estar en el mismo directorio que el archivo comprimido.


    El archivo de configuración comprimido debe contener los archivos siguientes:

    • de perfil

    • rules

    • rules.ok

    También puede incluir el archivo sysidcfg en el archivo de configuración comprimido.

  3. Guarde el archivo de configuración comprimido en un servidor NFS o HTTP o en un disco duro local.

Ejemplo de archivo de configuración comprimido

El ejemplo siguiente muestra cómo usar el comando tar para crear un archivo de configuración comprimido denominado config.tar. Los archivos de configuración de JumpStart personalizado se encuentran en el directorio /jumpstart.


Ejemplo 24–6 Creación de un archivo de configuración comprimido


# cd /jumpstart
# tar -cvf config.tar *
a profile 1K
a rules 1K
a rules.ok 1K
a sysidcfg 1K

Creación de archivos de configuración de disco

Este apartado explica cómo crear archivos de configuración de un solo disco y de varios discos. Los archivos de configuración de disco permiten usar pfinstall(1M) desde un sistema único para comprobar perfiles en diferentes configuraciones de disco.

SPARC: Para crear un archivo de configuración de disco

  1. Localice un sistema SPARC con un disco que desee probar.

  2. Conviértase en superusuario.

  3. Cree un archivo de configuración de disco único redirigiendo la salida del comando prtvtoc(1M) a un archivo.


    # prtvtoc /dev/rdsk/nombre_dispositivo >archivo_configuración_disco
    
    /dev/rdsk/ nombre_dispositivo

    El nombre del dispositivo del disco del sistema. nombre_dispositivo debe tener el formato cwtxdys2 o cxdys2.

    archivo_configuración_disco

    El nombre del archivo de configuración de disco.

  4. Determine si va a probar la instalación del software Solaris en varios discos.

    • En caso contrario, deténgase. Ha terminado.

    • En caso afirmativo, deberá concatenar los archivos de configuración de disco único y guardar la salida en un archivo nuevo.


      # cat archivo_disco1 archivo_disco2 >configuración_varios_discos
      

      El nuevo archivo se convierte en el archivo de configuración de varios discos, como muestra el ejemplo siguiente:


      # cat 104_disk2 104_disk3 104_disk5>multi_disk_test
      
  5. Determine si los números de destino de los nombres de dispositivo de disco son exclusivos en el archivo de configuración de varios discos que se creó en el paso anterior.

    • En caso afirmativo, deténgase. Ha terminado.

    • En caso de que no sea así, abra el archivo con un editor de texto y haga que los números de destino sean exclusivos en los nombres de dispositivos de disco.

      Por ejemplo, si suponemos que el archivo contiene el mismo número de destino, t0, para varios nombres de dispositivos de disco, como se muestra aquí:

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t0d0s2 partition map

      Cambie el segundo número de destino a t2, como se ilustra a continuación:

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t2d0s2 partition map

SPARC: Ejemplo de archivo de configuración de disco

El ejemplo siguiente muestra cómo crear un archivo de configuración de disco único 104_test en un sistema SPARC que contiene un disco de 104 Mbytes.


Ejemplo 24–7 SPARC: Creación de un archivo de configuración de disco

Se redirige la salida del comando prtvtoc a un archivo de configuración de disco único denominado 104_test:


# prtvtoc /dev/rdsk/c0t3d0s2>104_test

El contenido del archivo 104_test tendrá el siguiente aspecto:

* /dev/rdsk/c0t3d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      72 sectors/track
*      14 tracks/cylinder
*    1008 sectors/cylinder
*    2038 cylinders*    2036 accessible cylinders
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       1      2    00          0     164304   164303   /
       2      5    00          0    2052288  2052287
       3      0    00     164304     823536   987839   /disk2/b298
       5      0    00     987840     614880  1602719   /install/298/sparc/work
       7      0    00    1602720     449568  2052287   /space

Ha creado archivos de configuración de disco para un sistema SPARC. Comprobación de un perfil incluye información sobre el uso de archivos de configuración de disco para comprobar perfiles.


x86: Para crear un archivo de configuración de disco

  1. Busque el sistema basado en x86 que contenga el disco que está probando.

  2. Conviértase en superusuario.

  3. Cree parte del archivo de configuración de disco único guardando la salida del comando fdisk(1M) en un archivo.


    # fdisk -R -W archivo_configuración_disco -h /dev/rdsk/nombre_dispositivo
    
    archivo_configuración_disco

    El nombre del archivo de configuración de disco

    /dev/rdsk/ nombre_dispositivo

    El nombre de dispositivo de la disposición fdisk del disco completo. nombre_dispositivo debe tener el formato cwtxdyp0 o cxdyp0.

  4. Adjunte la salida del comando prtvtoc(1M) al archivo de configuración de disco:


    # prtvtoc /dev/rdsk/nombre_dispositivo  >>configuración_disco
    
    /dev/rdsk/nombre_dispositivo

    El nombre del dispositivo del disco del sistema. nombre_dispositivo debe tener el formato cwtxdys2 o cxdys2.

    configuración_disco

    El nombre del archivo de configuración de disco

  5. Determine si va a probar la instalación del software Solaris en varios discos.

    • En caso contrario, deténgase. Ha terminado.

    • En caso afirmativo, deberá concatenar los archivos de configuración de disco único y guardar la salida en un archivo nuevo.


      # cat archivo_disco1 archivo_disco2 >configuración_varios_discos
      

      El nuevo archivo se convierte en el archivo de configuración de varios discos, como muestra el ejemplo siguiente:


      # cat 104_disk2 104_disk3 104_disk5>multi_disk_test
      
  6. Determine si los números de destino de los nombres de dispositivo de disco son exclusivos en el archivo de configuración de varios discos que se creó en el paso anterior.

    • En caso afirmativo, deténgase. Ha terminado.

    • En caso contrario, abra el archivo con un editor de texto y haga que los números de destino sean exclusivos.

      Por ejemplo, si el archivo contiene el mismo número de destino, t0, para varios nombres de dispositivos de disco, como se muestra aquí:

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t0d0s2 partition map

      Cambie el segundo número de destino a t2, como se ilustra a continuación:

      * /dev/rdsk/c0t0d0s2 partition map
      ...
      * /dev/rdsk/c0t2d0s2 partition map

x86: Ejemplo de archivo de configuración de disco

El ejemplo siguiente muestra cómo crear un archivo de configuración de disco único 500_test en un sistema x86 que contiene un disco de 500 Mbytes.


Ejemplo 24–8 x86: Creación de un archivo de configuración de disco

Primero, guarde la salida del comando fdisk en un archivo denominado 500_test:


# fdisk -R -W 500_test -h /dev/rdsk/c0t0d0p0

El archivo 500_test será, más o menos, así:

 * /dev/rdsk/c0t0d0p0 default fdisk table
* Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
*  HBA Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
* systid:
*  1:    DOSOS12
*  2:    PCIXOS
*  4:    DOSOS16
*  5:    EXTDOS
*  6:    DOSBIG
*  86:   DOSDATA
*  98:   OTHEROS
*  99:   UNIXOS
* 130:   SUNIXOS
*
* Id  Act Bhead Bsect   Bcyl  Ehead  Esect  Ecyl Rsect  Numsect
 130  128 44    3       0     46    30     1001 1410   2050140

Después, adjunte la salida del comando prtvtoc en el archivo 500_test:


# prtvtoc /dev/rdsk/c0t0d0s2>>500_test

El archivo 500_test ya es un archivo de configuración de disco completo:

* /dev/rdsk/c0t0d0p0 default fdisk table
* Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
*  HBA Dimensions:
*     512 bytes/sector
*      94 sectors/track
*      15 tracks/cylinder
*    1455 cylinders
*
* systid:
*  1:    DOSOS12
*  2:    PCIXOS
*  4:    DOSOS16
*  5:    EXTDOS
*  6:    DOSBIG
*  86:   DOSDATA
*  98:   OTHEROS
*  99:   UNIXOS
*  130:  SUNIXOS
*
* Id  Act Bhead Bsect Bcyl  Ehead  Esec  Ecyl Rsect  Numsect
 130  128 44    3     0     46    30    1001 1410   2050140
* /dev/rdsk/c0t0d0s2 partition map
*
* Dimensions:
*      512 bytes/sector
*       94 sectors/track
*       15 tracks/cylinder
*     1110 sectors/cylinder
*     1454 cylinders
*     1452 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*                          First    Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       2      5    01       1410   2045910   2047319
       7      6    00       4230   2043090   2047319  /space
       8      1    01          0      1410     1409
       9      9    01       1410      2820     422987

Ha creado archivos de configuración de disco para un sistema x86. Comprobación de un perfil incluye información sobre el uso de archivos de configuración de disco para comprobar perfiles.


Uso de un programa de instalación específico de una sede

También se pueden usar secuencias de inicio y de fin para crear un programa personalizado de instalación para el software Solaris.

Cuando se especifica un símbolo menos (-) en el campo de perfil, las secuencias de inicio y de fin controlan la forma de instalar el software Solaris en un sistema en lugar del perfil y el programa suninstall de Solaris.

Por ejemplo, si la siguiente regla concuerda con un sistema, la secuencia de inicio x_install.beg y la secuencia de fin x_install.fin instalan el software Solaris en el sistema denominado clover:

hostname clover x_install.beg - x_install.fin