En este capítulo se explican las funciones opcionales disponibles para crear herramientas adicionales para la instalación JumpStart personalizada.
Las instrucciones de este capítulo son válidas para un servidor SPARC o x86 utilizado para proporcionar archivos JumpStart personalizados , denominado servidor de perfil. Éstos pueden proporcionar archivos de JumpStart personalizados a diferentes tipos de plataformas. Por ejemplo, un servidor SPARC puede proporcionar archivos de JumpStart personalizada a sistemas SPARC y x86.
Una secuencia es una secuencia de shell Bourne 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:
Creción de perfiles derivados
Copia de seguridad de los archivos antes de la modernización
No especifique en la secuencia de inicio nada que pueda impedir el montaje de los sistemas de archivos en /a durante una instalación inicial o de modernización. Si el programa JumpStart no puede montar los sistemas de archivos en /a, se producirá un error y fallará la instalación.
Durante la instalación, la salida de la secuencia de inicio se deposita en /tmp/begin.log. Después de que acabe la instalación, el archivo de registro se redirecciona a /var/sadm/system/logs/begin.log.
Asegúrese de que root es propietario de la secuencia de inicio y de los permisos configurados en 644.
Las variables de entorno de JumpStart personalizada se pueden usar en las secuencias de inicio. Si desea obtener una lista de las variables de entorno, consulteVariables de entorno de JumpStart personalizado.
Guarde las secuencias de inicio en el directorio JumpStart.
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:
Configure el campo de perfil con un signo igual (=) en lugar de con un perfil.
Fije el campo de inicio en una secuencia de inicio que cree un perfil derivado, dependiente del sistema en el que se pretenda instalar el software Solaris.
Cuando un sistema coincide 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 de 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.
#!/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 o el nombre del perfil derivado /tmp/install.input que está configurado de forma predeterminada.
Si se utiliza una secuencia para crear un perfil derivado, asegúrese de que las secuencias no presenten errores. Los perfiles derivados no se verifican con la secuencia check porque no se crean hasta que se ha ejecutado la secuencia de inicio.
Una secuencia de finalización es una secuencia de comandos de shell Bounce 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:
Adición de archivos
Adición de paquetes o modificaciones, además de las que se instalan en un grupo de software concreto
Personalización del entorno root
Establecimiento de la contraseña root del sistema
Instalación de software adicional
El programa de instalación de Solaris monta los sistemas de archivos del sistema en /a, donde siguen montados hasta que se rearranque el sistema. Puede usar la secuencia de fin para agregar, cambiar o suprimir archivos de la jerarquía del sistema recién instalado, modificando los sistemas de archivos de /a.
Durante la instalación, la salida de secuencia de finalización se guarda en /tmp/finish.log. Después de que acabe la instalación, el archivo de registro se redirecciona a /var/sadm/system/logs/finish.log.
Compruebe que root sea propietario de la secuencia de finalización y que los permisos se hayan establecido en 644
Puede usar las variables de entorno del programa JumpStart personalizada en sus secuencias de fin. Si desea obtener una lista de las variables de entorno, consulteVariables de entorno de JumpStart personalizado.
Guarde las secuencias de fin en el directorio JumpStart.
Con una secuencia de fin se pueden agregar archivos desde el 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.
También se pueden sustituir los archivos, copiándolos desde el directorio JumpStart a los archivos ya existentes del sistema instalado.
Copie todos los archivos que está agregando al sistema instalado en el directorio JumpStart.
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}/file_name /a/path_name |
Por ejemplo, suponga que dispone de una aplicación especial site_prog desarrollada para todos los usuarios del sitio. 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 |
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 del sitio.
Cuando utilice los comandospkgadd(1M) o patchadd(1M)en secuencias de finalización, utilice la opción -R para especificar /a como la ruta de root.
Ejemplo 7–3 muestra un ejemplo de secuencia de fin que agrega paquetes.
Ejemplo 7–4 muestra un ejemplo de secuencia de fin que agrega parches.
#!/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:
El siguiente comando monta un directorio en un servidor que contiene el paquete que se instala.
mount -f nfs sherlock:/export/package ${MNT} |
El siguiente comando 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.
cat >${ADMIN_FILE} <<DONT_ASK |
El comando pkgadd mostrado a continuación agrega el paquete utilizando la opción -a, que especifica el archivo de administración del paquete, y la opción -R, que especifica la ruta de root.
/usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz |
#!/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 |
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 root /a antes de emitir el comando chroot.
Para crear un archivo /etc/mnttab simulado, agregue la siguiente línea a la secuencia de finalización.
cp /etc/mnttab /a/etc/mnttab
También puede utilizar la secuencia de finalización para personalizar archivos que ya están instalados en un sistema. Por ejemplo, la secuencia de finalización del Ejemplo 7–5 personaliza el entorno root agregando información al archivo .cshrc en el directorio root (/).
#!/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 } |
Después de instalar el software de Solaris en un sistema, el sistema se reinicia. 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 Ejemplo 7–6.
Si configura la contraseña root del sistema con una secuencia de finalización, los usuarios podrían tratar de descubrir la contraseña root desde la contraseña encriptada en la secuencia de finalización. Procure proteger el sistema a fin de que los usuarios no puedan descubrir la contraseña root.
#!/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:
El siguiente comando establece la variable PASSWD en una contraseña root encriptada que se obtiene de una entrada existente en un archivo /etc/shadow del sistema.
#create a temporary input file |
El siguiente comando crea un archivo de entrada temporal de /a/etc/shadow.
cp /a/etc/shadow /a/etc/shadow.orig |
El siguiente comando cambia la entrada root del archivo /etc/shadow por el sistema recién instalado con $PASSWD como campo de contraseña.
if ( $1 == "root" ) |
El siguiente comando elimina el archivo de entrada temporal /a/etc/shadow.
rm -f /a/etc/shadow.orig |
El siguiente comando cambia la entrada de 0 a 1 en el archivo de estado para que no se le pida al usuario la contraseña root. 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.
sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$ |
Se pueden usar las secuencias de fin 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 7–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).
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 JumpStart personalizado en un solo archivo.
Para sistemas SPARC, especifique la ubicación del archivo en el comando boot.
Para sistemas x86:
A partir de la versión 10 1/06 de Solaris, especifique la ubicación de los otros archivos editando la entrada de GRUB en el menú de GRUB.
Para la versión Solaris 10 1/06 , especifique la ubicación del archivo en el comando boot.
El archivo de configuración comprimido puede ser de uno de los siguientes tipos:
tar
tar comprimido
zip
bzip tar
Cambie el directorio JumpStart del servidor de perfiles.
# cd ruta_directorio_jumpstart |
Use una herramienta de compresión para comprimir los archivos de configuración de JumpStart en un solo archivo.
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.
Guarde el archivo de configuración comprimido en un servidor NFS o HTTP o en un disco duro local.
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.
# cd /jumpstart # tar -cvf config.tar * a profile 1K a rules 1K a rules.ok 1K a sysidcfg 1K |
En esta sección, se describe cómo crear archivos de configuración de un 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.
Conviértase en superusuario o asuma una función similar.
Las funciones incluyen autorizaciones y comando con privilegios. Para obtener más información sobre las funciones, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.
Cree un archivo de configuración de disco redirigiendo la salida del comando prtvtoc(1M) a un archivo.
# prtvtoc /dev/rdsk/device_name >disk_config_file |
El nombre del dispositivo del disco del sistema. device_name debe tener el formato cwt xdys2 o cxdy s2.
El nombre del archivo de configuración de disco.
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 |
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 |
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.
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 contains information about using disk configuration files to test profiles.
Busque un sistema basado en x86 que contenga un disco que esté probando
Conviértase en superusuario o asuma una función similar.
Las funciones incluyen autorizaciones y comando con privilegios. Para obtener más información sobre las funciones, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.
Cree parte del archivo de configuración de un disco guardando la salida del comando fdisk(1M) en un archivo.
# fdisk -R -W disk_config_file -h /dev/rdsk/device_name |
El nombre del archivo de configuración de disco
El nombre de dispositivo de la disposición fdisk del disco completo. device_name debe tener el formato c wtxd ys0 o cx dys0.
Adjunte la salida del comando prtvtoc(1M) al archivo de configuración de disco:
# prtvtoc /dev/rdsk/device_name >>disk_config |
El nombre del dispositivo del disco del sistema. device_name debe tener el formato cwt xdys2 o cxdy s2.
El nombre del archivo de configuración de disco.
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 |
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 |
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.
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 en los perfiles de prueba.
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 un campo de perfil(-), las secuencias de inicio y de fin controlan como se instala el software 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 |