Solaris 9: Guía de instalación

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).