Guía de instalación de Solaris 10 10/09: instalación JumpStart personalizada e instalaciones avanzadas

Capítulo 4 Uso de las funciones opcionales de JumpStart personalizada (tareas)

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


Nota –

Si instala una agrupación root de ZFS de Solaris, consulte el Capítulo 9Instalación de una agrupación root de ZFS con JumpStart para conocer las limitaciones y obtener ejemplos de perfiles.



Nota –

Las instrucciones de este capítulo son aptas para un servidor SPARC o un servidor x86 que se utiliza para proporcionar archivos de JumpStart personalizada, denominado servidor de perfil. Éstos pueden proporcionar archivos de JumpStart personalizada a diferentes tipos de plataformas. Por ejemplo, un servidor SPARC puede proporcionar archivos de JumpStart personalizada a sistemas SPARC y x86.


Creación de secuencias de inicio

Una secuencia de comando de inicio consiste en una secuencia de comando shell de Bourne definida por el usuario que se especifica en el archivo rules. Una secuencia de comandos de inicio realiza tareas antes de instalar el software Solaris en un sistema. sólo se pueden usar cuando se emplee el programa de instalación JumpStart personalizada 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


Nota –

En la versión Solaris 10, la secuencia de comandos JumpStart set_nfs4_domain se proporcionaba en medios para impedir la solicitud durante una instalación JumpStart. Esta secuencia de comandos suprimía la solicitud de NFSv4 durante la instalación. Esta secuencia de comandos ya no es necesaria. A partir de Solaris 10 5/09, utilice la palabra clave sysidcfg, nfs4_domain, que suprime la solicitud. La secuencia de comandos set_nfs4_domain ya no suprime una solicitud.

Si tiene instaladas zonas no globales y la nueva palabra clave nfs4_domain figura en el archivo sysidcfg, el primer arranque de una zona no global establece el dominio. De lo contrario, aparece en pantalla el programa de instalación interactiva de Solaris para solicitar al usuario un nombre de dominio antes de finalizar el proceso de arranque.

Consulte Palabra clave nfs4_domain de Guía de instalación de Solaris 10 10/09: instalaciones basadas en red


Creación de perfiles derivados con una secuencia de inicio

Los perfiles derivados se crean mediante una secuencia de comandos de inicio en el transcurso de una instalación JumpStart personalizada. Los perfiles derivados se usan cuando el archivo rules no se puede configurar para que concuerde con determinados sistemas de 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 signo igual (=), la secuencia de comandos 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 4–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 comandos de inicio debe ser la variable de entorno SI_PROFILE para el nombre del perfil derivado, que de forma predeterminada se establece en /tmp/install.input.



Nota –

Si para crear un perfil derivado se utiliza una secuencia de comandos de inicio, compruebe que la secuencia de comandos no contenga 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 finalización

Una secuencia de comandos de finalización consiste en una secuencia shell de Bourne definida por el usuario que se especifica en el archivo rules. Una secuencia de comandos de finalización efectúa tareas una vez instalado el software Solaris, pero antes de que se reinicie el sistema. se puede utilizar solamente cuando se usa el programa de instalación JumpStart personalizada para la instalación de Solaris.

Tareas que se pueden realizar con una secuencia de finalización:

Información importante sobre las secuencias de finalización

ProcedurePara agregar archivos con una secuencia de finalización

Con una secuencia de finalización se pueden agregar archivos desde el directorio JumpStart a un sistema ya instalado. Puede agregar los archivos porque el directorio de 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 en el directorio JumpStart todos los archivos que esté agregando al sistema instalado.

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

    cp ${SI_CONFIG_DIR}/file_name /a/path_name
    

Ejemplo 4–2 Adición de un archivo con una secuencia de finalización

Por ejemplo, suponga 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 JumpStart, la línea siguiente de una secuencia de finalización copia site_prog desde el directorio 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 finalización

Se puede crear una secuencia de finalización 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 finalización, se reduce el tiempo y se garantiza la coherencia en los paquetes y las modificaciones que se instalen en sistemas diferentes del sitio.

Al utilizar los comandos pkgadd(1M) o patchadd(1M) en secuencias de comandos de finalización, emplee la opción -R para especificar /a como ruta root.


Ejemplo 4–3 Adición de paquetes con una secuencia de finalización

  #!/bin/sh
 
  BASE=/a
  MNT=/a/mnt
  ADMIN_FILE=/a/tmp/admin
 
  mkdir ${MNT}
  mount -f nfs sherlock:/export/package ${MNT}
  cat >${ADMIN_FILE} <<DONT_ASK
  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} SUNWxyz 
  umount ${MNT}
  rmdir ${MNT}

A continuación, se describen los comandos de este ejemplo:



Ejemplo 4–4 Adición de modificaciones con una secuencia de finalización

 #!/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 8 SPARC would turn into /foo/5.8/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 finalización. 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 root /a antes de emitir el comando chroot.

Para crear un archivo /etc/mnttab ficticio, agregue la línea siguiente a la secuencia de comandos de finalización:

cp /etc/mnttab /a/etc/mnttab

Personalización del entorno root con una secuencia de finalización

Las secuencias de comandos de finalización también son válidas para personalizar archivos que ya estén instalados en un sistema. Por ejemplo, la secuencia de finalización del Ejemplo 4–5 personaliza el entorno root agregando información al archivo .cshrc en el directorio root (/).


Ejemplo 4–5 Personalización del entorno root con una secuencia de finalización

#!/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 root con una secuencia de finalización

Después de instalar el software Solaris en el sistema, el sistema rearranca. Antes de que finalice el proceso de arranque, el sistema pide la contraseña root. El sistema no podrá concluir el arranque hasta que alguien finalice el arranque.

Una secuencia de finalización denominada set_root_pw se guarda en el directorio auto_install_sample. La secuencia de finalización muestra cómo fijar automáticamente la contraseña root, sin necesidad de indicador. set_root_pw se muestra en el Ejemplo 4–6.


Nota –

Si establece la contraseña root del sistema con una secuencia de comandos de finalización, los usuarios podrían intentar descubrirla a partir de la contraseña cifrada en la secuencia de comandos de finalización. Procure proteger el sistema a fin de que los usuarios no puedan descubrir la contraseña root.



Ejemplo 4–6 Configuración de la contraseña root del sistema con una secuencia de finalización

	 #!/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 file
 cp /a/etc/shadow /a/etc/shadow.orig
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )
           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.orig
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$
  mv /tmp/state.$$ ${SI_SYS_STATE}

A continuación, se describen algunos comandos de este ejemplo:


Instalaciones no interactivas con secuencias de finalización

Se pueden usar las secuencias de finalización para instalar software adicional después de instalar el sistema operativo Solaris. Programa de instalación de Solaris solicitará información durante el proceso de instalación. Para automatizar la instalación, puede ejecutar el programa Programa de instalación de Solaris con las opciones -nodisplay o -noconsole.

Tabla 4–1 Opciones de instalación de Solaris

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 personalizada, se puede especificar la ubicación de los archivos al arrancar el sistema. Sin embargo, puede especificar solamente el nombre de un archivo. Por tanto, deberá comprimir todos los archivos de configuración del programa de instalación JumpStart personalizada en un solo archivo.

El archivo de configuración comprimido puede ser de uno de los siguientes tipos:

ProcedurePara crear un archivo de configuración comprimido

  1. Cambie el directorio JumpStart del servidor de perfiles.


    # cd jumpstart_dir_path
    
  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 personalizada deben estar en el mismo directorio que el archivo comprimido.


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

    • 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 personalizada se encuentran en el directorio /jumpstart.


Ejemplo 4–7 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

En esta sección se describe el procedimiento para crear archivos de configuración de un disco y de varios discos. Los archivos de configuración de disco permiten utilizar pfinstall(1M) desde un solo sistema para comprobar perfiles respecto a otras configuraciones de disco.

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

  1. Busque un sistema basado en SPARC con un disco que quiera verificar.

  2. Conviértase en superusuario o asuma una función similar.

    Las funciones incluyen autorizaciones y comandos con privilegios. Para obtener más información sobre las funciones, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.

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


    # prtvtoc /dev/rdsk/device_name >disk_config_file
    
    /dev/rdsk/nombre_dispositivo

    El nombre del dispositivo del disco del sistema. nombre_dispositivo debe tener el formato cwtx dys2 o c xdys2.

    archivo_config_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 disk_file1 disk_file2 >multi_disk_config
      

      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 con un disco de 104 Mbytes.


Ejemplo 4–8 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 contiene información acerca de la utilización de archivos de configuración de discos a los perfiles de prueba.


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

  1. Busque un sistema basado en x86 que contenga un disco que quiera verificar.

  2. Conviértase en superusuario o asuma una función similar.

    Las funciones incluyen autorizaciones y comandos con privilegios. Para obtener más información sobre las funciones, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.

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


    # fdisk -R -W disk_config_file -h /dev/rdsk/device_name
    
    archivo_config_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 cwtx dys0 o c xdys0.

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


    # prtvtoc /dev/rdsk/device_name >>disk_config
    
    /dev/rdsk/nombre_dispositivo

    El nombre del dispositivo del disco del sistema. nombre_dispositivo debe tener el formato cwtx dys2 o c xdys2.

    config_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 disk_file1 disk_file2 >multi_disk_config
      

      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 4–9 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 contiene información acerca de la utilización de archivos de configuración de discos a los perfiles de prueba.


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 especifique el signo (-) en el campo de perfil, las secuencias de comandos de inicio y de finalización controlan la forma en que el software se instala en el sistema en lugar del perfil y el programa de instalación de Solaris.

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

hostname clover x_install.beg - x_install.fin