Guia de instalação do Oracle Solaris 10 9/10: instalação JumpStart personalizada e instalações avançadas

Capítulo 4 Utilizando recursos JumpStart personalizados opcionais (tarefas)

Este capítulo descreve os recursos opcionais que estão disponíveis para criar ferramentas de instalação JumpStart personalizadas adicionais.


Observação –

Se estiver instalando um grupo raiz ZFS do Solaris, consulte Capítulo 9Instalação de um conjunto raiz do ZFS com o JumpStart para limitações e exemplos de perfil.



Observação –

As instruções deste capítulo são válidas tanto para servidor SPARC quanto para servidor x86 que esteja sendo utilizado para fornecer arquivos JumpStart personalizados, chamado de servidor de perfil. Um servidor de perfil pode fornecer arquivos JumpStart personalizados para diferentes tipos de plataforma. Por exemplo, um servidor SPARC pode fornecer arquivos JumpStart personalizados para sistemas com base SPARC ou sistemas com base x86.


Criando scripts iniciais

Um script inicial é um script de shell Bourn definido pelo usuário que é especificado no arquivo regras. Um script inicial executa tarefas antes de instalar o software Solaris no sistema. É possível utilizar scripts iniciais utilizando apenas JumpStart personalizado para instalar o software Solaris.

Utilize um script inicial para executar uma das tarefas a seguir:

Informações importantes sobre scripts iniciais


Observação –

Para a versão Solaris 10, um script JumpStart de amostra, set_nfs4_domain, foi fornecido na mídia para prevenir solicitações durante uma instalação JumpStart. Este script suprimiu a solicitação NFSv4 durante a instalação. Este script não é mais necessário. Iniciando com a versão Solaris 10 5/09, utilize a palavra-chave sysidcfg, nfs4_domain que suprime a solicitação. O script set_nfs4_domain não trabalha mais para suprimir uma solicitação.

Se você possuir uma zona não global instalada e a nova palavra-chave nfs4_domain existe no arquivo sysidcfg, a primeira inicialização de uma zona não global configura o domínio. Caso contrário, o programa de instalação interativa Solaris surge e uma solicitação aparece para fornecer um nome de domínio antes do processo de inicialização concluir.

Consulte Palavra-chave nfs4_domain no Guia de instalação do Oracle Solaris 10 9/10: instalações com base em rede


Criando perfis derivados com script inicial

Um perfil derivado é um perfil que é criado dinamicamente por um script inicial durante uma instalação JumpStart personalizada. Perfis derivados são necessário quando não é possível configurar os arquivo regras para combinar sistemas específicos com um perfil. Por exemplo, pode ser necessário utilizar perfis derivados para modelos de sistemas idênticos que têm diferentes componentes de hardware, como sistemas que contêm quadros de buffers diferentes.

Para configurar uma regra para utilizar perfis derivados, é necessários executar as tarefas a seguir:

Quando um sistema combina uma regra com o campo de perfil igual com um sinal de igual (=), o script inicial cria um perfil derivado que é utilizado para instalar o software Solaris no sistema.

A seguir temos um exemplo de um script inicial que cria o mesmo perfil inicial todas as vezes. É possível escrever um script inicial para criar perfis derivados diferentes que dependem da avaliação das regras.


Exemplo 4–1 Script inicial que cria um 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}

No exemplo, o script inicial deve utilizar a variável de ambiente SI_PROFILE para o nome do perfil derivado, que é definido como /tmp/install.input por padrão.



Observação –

Se um script inicial é utilizado para criar um perfil derivado, assegure-se que script não contém nenhum erro. Um perfil derivado não é verificado pelo script verificar porque perfis derivados não são criados até a execução do script iniciar.


Rastreando duração de instalação com script inicial e script final

É possível incluir um script inicial e um script final para rastrear o momento inicial e o momento final de uma instalação. Veja os exemplos a seguir.


Exemplo 4–2 Script inicial que rastreia o momento inicial

# more begin-with-date
#!/bin/sh
#

echo
echo "Noting time that installation began in /tmp/install-begin-time"
echo "Install begin time: `date`" > /tmp/install-begin-time
echo
cat /tmp/install-begin-time
echo
#


Exemplo 4–3 Script final que rastreia o momento final

# more finish*with*date
#!/bin/sh
#

cp /tmp/install-begin-time /a/var/tmp
echo
echo "Noting time that installation finished in /a/var/tmp/install-finish-time"
echo "Install finish time: `date`" > /a/var/tmp/install-finish-time
echo
cat /a/var/tmp/install-finish-time
#

O momento final e inicial serão registrados no arquivo finish.log.

Criando script finais

Um script final é um script de Bourne shell definido pelo usuário, que é especificado no arquivo regras. Um script final executa tarefas depois da instalação do software Solaris em um sistema, mas antes da inicialização do sistema. É possível utilizar scripts finais somente ao utilizar JumpStart personalizado para instalar o Solaris.

Tarefas que podem ser executadas com um script final inclui o seguinte:

Informações importantes sobre scripts finais

ProcedurePara adicionar arquivos com um script final

Através de um script final, é possível adicionar arquivos do diretório JumpStart para um sistema já instalado. É possível adicionar os arquivos porque o diretório JumpStart está montado no diretório que é especificado pela variável SI_CONFIG_DIR . O diretório é configurado para /tmp/install_config por padrão.


Observação –

Também é possível substituir arquivos copiando arquivos do diretório JumpStart para arquivos já existentes no sistema instalado.


  1. Copie todos os arquivos que estiver adicionando ao sistema instalado para o diretório JumpStart.

  2. Insira a linha a seguir no script final para cada arquivo que deseja copiar para a hierarquia de sistema de arquivos recém instalada:

    cp ${SI_CONFIG_DIR}/file_name /a/path_name
    

Exemplo 4–4 Adicionando um arquivo com um script final

Por exemplo, suponha que você tenha um aplicativo especial, site_prog, desenvolvido para todos usuários no seu site. Se inserir uma cópia de site_prog em um diretório JumpStart, a linha a seguir em um script final copia site_prog de um diretório JumpStart em um diretório /usr/bin do sistema:

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

Adicionando pacotes ou patches com um script final

É possível criar um script final para adicionar automaticamente pacotes ou patches depois da instalação do software Solaris em um sistema. Ao adicionar pacotes com um script final, é reduzido o tempo e garante a consistência aonde os pacotes e patches são instalados em sistemas diferentes no site.

Ao utilizar os comandos pkgadd(1M) ou patchadd(1M) em scripts finais, utilize a opções -R para especificar /a como caminho raiz.


Exemplo 4–5 Adicionando pacotes com um script final

  #!/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 seguir temos uma descrição de alguns comandos para esse exemplo.



Exemplo 4–6 Adicionando patches com um script final

 #!/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


Observação –

Anteriormente, o comando chroot(1M) era utilizado com os comandos pkgadd e patchadd no ambiente de script final. Em raras instâncias, alguns pacotes ou patches não trabalham com a opção -R. É necessário criar um arquivo /etc/mnttab de teste no caminho raiz /a antes de emitir o comando chroot.

Para criar um arquivo /etc/mnttab de teste, adicione a linha a seguir para o script final:

cp /etc/mnttab /a/etc/mnttab

Personalizando o ambiente raiz com um script inicial

Também é possível utilizar scripts finais para personalizar arquivos que já estão instalados no sistema. Por exemplo, o script final no Exemplo 4–7 personaliza o ambiente raiz anexando informação ao arquivo .cshrc no diretório raiz (/).


Exemplo 4–7 Personalizando o ambiente raiz com um script inicial

#!/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
}

Instalações não interativa com scripts finais

É possível utilizar scripts finais para instalar softwares adicionais depois da instalação do sistema operacional Solaris. O Programa de instalação do Solaris solicita que você insira informações durante a instalação. Para manter uma instalação automatizada, é possível executar o Programa de instalação do Solaris com as opções -nodisplay ou -noconsole.

Tabela 4–1 Opções de instalação Solaris

Opção 

Descrição 

-nodisplay

Executa o instalador sem uma interface de usuário gráfica. Utilize a instalação do produto padrão a menos que a instalação não seja modificada pela opção -locales .

-noconsole

Executa a instalação sem dispositivos de console de texto interativo. Útil quando comparado com -nodisplay para utilização do script UNIX.

Para mais informações, consulte a página do manual installer(1M).

Criando um arquivo de configuração comprimida

No lugar de utilizar o comando add_install_client para especificar a localização dos arquivos de configuração JumpStart personalizada, é possível especificar a localização dos arquivos ao inicializar o sistema. Entretanto, é possível especificar apenas o nome de um arquivo. Como resultado, é necessário comprimir todos os arquivos de configuração JumpStart personalizados em um arquivo.

O arquivo de configuração comprimido pode ser um dos tipos a seguir:

ProcedurePara criar um arquivo de configuração comprimido

  1. Altere o diretório para o diretório JumpStart no servidor do perfil.


    # cd jumpstart_dir_path
    
  2. Utilize uma ferramenta de compressão para comprimir os arquivos de configuração JumpStart personalizados em um arquivo.


    Observação –

    O arquivo de configuração comprimido não pode conter partes relacionadas. Os arquivos de configuração JumpStart personalizados precisam estar no mesmo diretório que o arquivo comprimido.


    O arquivo de configuração comprimido precisa conter os arquivos a seguir:

    • Perfil

    • regras

    • rules.ok

    Também é possível incluir o arquivo sysidcfg no arquivo de configuração comprimido.

  3. Salve o arquivo de configuração comprimido em um servidor NFS, um servidor HTTP ou em um disco rígido local.

Arquivo de configuração comprimido de exemplo

O exemplo a seguir mostra como utilizar o comando tar para criar um arquivo de configuração comprimido nomeado config.tar. Os arquivos de configuração JumpStart personalizados estão localizados no diretório /jumpstart.


Exemplo 4–8 Criando um arquivo de configuração comprimida


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

Criando arquivos de configuração de disco

Esta sessão descreve como criar arquivos de configuração de disco único e disco múltiplo. Arquivos de configuração de disco permitem que você utilize pfinstall(1M) de um sistema único para testar perfis em diferentes configurações de disco.

ProcedureSPARC: Para criar um arquivo de configuração de disco

  1. Localize um sistema com base em SPARC com um disco que deseja testar.

  2. Torne-se um superusuário ou assuma uma função equivalente.

    Funções contêm autorizações e comandos privilegiados. Para mais informações sobre as funções, consulte Configuring RBAC (Task Map) no System Administration Guide: Security Services.

  3. Crie um arquivo de configuração de disco único redirecionando a saída do comando prtvtoc(1M) para um arquivo.


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

    O nome do dispositivo de disco do sistema. device_name deve estar no formulário cwt xdys2 ou cxdy s2.

    disk_config_file

    O nome do arquivo de configuração de disco.

  4. Determine se estiver testando a instalação do software Solaris em vários discos.

    • Se não, pare. Você concluiu.

    • Se sim, concatene os arquivos de configuração de disco único e salve a saída em um novo arquivo.


      # cat disk_file1 disk_file2 >multi_disk_config
      

      O novo arquivo torna-se o arquivo de configuração de disco múltiplo, como no exemplo a seguir.


      # cat 104_disk2 104_disk3 104_disk5 >multi_disk_test
      
  5. Determine se os números de destino nos nomes de dispositivo do disco em um arquivo de configuração de disco múltiplo criado na etapa anterior.

    • Se sim, pare. Você concluiu.

    • Se não, abra o arquivo com um editor de texto e torne os números de destino únicos nos nomes de dispositivo de disco.

      Por exemplo, suponha que o arquivo contém o mesmo número de destino, t0, para nomes de dispositivo de disco diferentes, como mostrado aqui.

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

      Altere o segundo número de destino para t2, como mostrado aqui:

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

SPARC: Exemplo de arquivo de configuração de disco

O exemplo a seguir mostra como criar um arquivo de configuração de disco único, 104_test, em um sistema com base em SPARC com um disco de 104 MB.


Exemplo 4–9 SPARC: Criando um arquivo de configuração de disco

É direcionada a saída do comando prtvtoc para um arquivo de configuração de disco único nomeado 104_test:


# prtvtoc /dev/rdsk/c0t3d0s2 >104_test

O conteúdo do arquivo 104_test assemelha-se ao seguinte:

* /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

Foi criado um arquivo de configuração de disco para um sistema com base em SPARC. Testando um perfil contém informações sobre a utilização de arquivos de configuração de disco para testar perfis.


Procedurex86: Para criar um arquivo de configuração de disco

  1. Localize um sistema com base x86 que contém um disco que está sendo testado.

  2. Torne-se um superusuário ou assuma uma função equivalente.

    Funções contêm autorizações e comandos privilegiados. Para mais informações sobre as funções, consulte Configuring RBAC (Task Map) no System Administration Guide: Security Services.

  3. Crie parte de um arquivo de configuração de disco único ao salvar a saída do comando fdisk(1M) em um arquivo.


    # fdisk -R -W disk_config_file -h /dev/rdsk/device_name
    
    disk_config_file

    O nome de um arquivo de configuração de disco.

    /dev/rdsk/device_name

    O nome de dispositivo do layout fdisk do disco inteiro. device_name deve estar no formulário cwtx dys0 ou c xdys0.

  4. Anexe a saída do comando prtvtoc(1M) para o arquivo de configuração de disco:


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

    O nome do dispositivo de disco do sistema. device_name deve estar no formulário cwt xdys2 ou cxdy s2.

    disk_config

    O nome do arquivo de configuração de disco.

  5. Determine se estiver testando a instalação do software Solaris em vários discos.

    • Se não, pare. Você concluiu.

    • Se sim, concatene os arquivos de configuração de disco único e salve a saída em um novo arquivo.


      # cat disk_file1 disk_file2 >multi_disk_config
      

      O novo arquivo torna-se o arquivo de configuração de disco múltiplo, como no exemplo a seguir.


      # cat 104_disk2 104_disk3 104_disk5 >multi_disk_test
      
  6. Determine se os números de destino nos nomes de dispositivo do disco em um arquivo de configuração de disco múltiplo criado na etapa anterior.

    • Se sim, pare. Você concluiu.

    • Se não, abra o arquivo com um editor de texto e torne os números de destino únicos.

      Por exemplo, o arquivo pode conter o mesmo número de destino, t0, para nomes de dispositivo de disco diferentes, como mostrado aqui:

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

      Altere o segundo número de destino para t2, como mostrado aqui:

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

x86: Exemplo de arquivo de configuração de disco

O exemplo a seguir mostra como criar um arquivo de configuração de disco único, 500_test, em um sistema com base x86 com um disco de 500 MB.


Exemplo 4–10 x86: Criando um arquivo de configuração de disco

Primeiro, a saída do comando fdisk é salva em um arquivo nomeado 500_test:


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

O arquivo 500_test tem a seguinte aparência:

 * /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

Segundo, a saída do comando prtvtoc é anexada ao arquivo 500_test:


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

O arquivo 500_test é agora um arquivo de configuração 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

Você criou um arquivo de configuração de disco para um sistema com base x86. Testando um perfil contém informações sobre a utilização de arquivos de configuração de disco para testar perfis.


Utilizando um programa de instalação específico para site

Também é possível utilizar scripts iniciais e finais para criar seu próprio programa de instalação para instalar o software Solaris.

Ao especificar um sinal de menos (-) no campo do perfil, scripts iniciais e finais controlam como o software Solaris é instalado em um sistema ao invés do perfil e do programa de instalação do Solaris.

Por exemplo, se a regra a seguir combina com um sistema, o script inicial x_install.beg e o script final x_install.fin instala o software Solaris no sistema nomeado trevo:

hostname clover x_install.beg - x_install.fin