Este capítulo descreve os recursos opcionais que estão disponíveis para criar ferramentas de instalação JumpStart personalizadas adicionais.
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.
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.
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:
Criando perfis derivados
Efetuando backup antes de atualizar
Registre a duração de uma instalação
Não especifique nada no script que impeça a montagem de sistemas de arquivos em /a durante uma instalação inicial ou de atualização. Se o programa JumpStart não é capaz de montar os sistemas de arquivos em /a, um erro ocorre e a instalação falha.
3Durante a instalação, a saída do script inicial é depositava em /tmp/begin.log . Depois da instalação ser concluída, o arquivo de log é redirecionado para /var/sadm/system/logs/begin.log.
Assegure-se que raiz possua o script inicial e que as permissões estejam configuradas para 644.
É possível utilizar variáveis do ambiente JumpStart personalizado nos scripts iniciais. Para uma lista de variáveis de ambiente, consulte Variáveis de ambiente do JumpStart personalizado.
Salve os scripts iniciais no diretório JumpStart.
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.
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:
Defina o campo como um sinal de igual (=) no lugar de um perfil.
Defina o campo inicial para um script inicial que cria um perfil derivado que depende do sistema no qual pretende instalar o Solaris.
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.
#!/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.
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.
É 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.
# 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 # |
# 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.
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:
Adicionando arquivos
Adicionando pacotes individuais ou patches, além dos instalados, em um grupo de software particular
Personalizando o ambiente raiz
Instalando software adicional
O programa de instalação do Solaris monta o sistema do sistema de arquivos em /a. O sistema de arquivos permanece montado em /a até a reinicialização do sistema. É possível utilizar o script final para adicionar, alterar ou remover arquivos da hierarquia do sistema de arquivos recém instalados ao modificar os sistemas de arquivos que são respectivos para /a.
Durante a instalação, a saída do script final está depositada em /tmp/finish.log. Depois de a instalação ser concluída, o arquivo de log é redirecionado para /var/sadm/system/logs/finish.log.
Assegure-se que raiz possui o script final e que as permissões estão configuradas para 644.
É possível utilizar variáveis do ambiente JumpStart personalizado nos scripts finais. Para uma lista de variáveis de ambiente, consulte Variáveis de ambiente do JumpStart personalizado.
Salve os scripts finais no diretório JumpStart.
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.
Também é possível substituir arquivos copiando arquivos do diretório JumpStart para arquivos já existentes no sistema instalado.
Copie todos os arquivos que estiver adicionando ao sistema instalado para o diretório JumpStart.
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 |
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 |
É 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 mostra um exemplo de um script final que adiciona pacotes.
Exemplo 4–6 mostra um exemplo de um script final que adiciona patches.
#!/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.
O comando a seguir monta um diretório em um servidor que contém o pacote para instalar.
mount -f nfs sherlock:/export/package ${MNT} |
O comando a seguir cria um arquivo de administração de pacote temporário, admin, para forçar o comando pkgadd(1M) a não executar verificações ou solicitar perguntas ao instalar o pacote. Utilize o arquivo de administração de pacote temporário para instalação automática quando adicionar pacotes.
cat >${ADMIN_FILE} <<DONT_ASK |
O comando pkgadd a seguir adiciona o pacote utilizando a opção -a, especificando o arquivo de administração de pacote e a opção -R, especificando o caminho raiz.
/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 |
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
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 (/).
#!/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 } |
É 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).
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.
Para sistemas com base em SPARC, é especificada a localização do arquivo no comando inicializar
Para sistemas com base x86, é especificada a localização dos arquivos ao editar a entrada GRUB no menu GRUB
O arquivo de configuração comprimido pode ser um dos tipos a seguir:
tar
tar comprimido
zip
bzip tar
Altere o diretório para o diretório JumpStart no servidor do perfil.
# cd jumpstart_dir_path |
Utilize uma ferramenta de compressão para comprimir os arquivos de configuração JumpStart personalizados em um arquivo.
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.
Salve o arquivo de configuração comprimido em um servidor NFS, um servidor HTTP ou em um disco rígido local.
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.
# cd /jumpstart # tar -cvf config.tar * a profile 1K a rules 1K a rules.ok 1K a sysidcfg 1K |
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.
Localize um sistema com base em SPARC com um disco que deseja testar.
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.
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 |
O nome do dispositivo de disco do sistema. device_name deve estar no formulário cwt xdys2 ou cxdy s2.
O nome do arquivo de configuração de disco.
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 |
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 |
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.
É 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.
Localize um sistema com base x86 que contém um disco que está sendo testado.
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.
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 |
O nome de um arquivo de configuração de disco.
O nome de dispositivo do layout fdisk do disco inteiro. device_name deve estar no formulário cwtx dys0 ou c xdys0.
Anexe a saída do comando prtvtoc(1M) para o arquivo de configuração de disco:
# prtvtoc /dev/rdsk/device_name >>disk_config |
O nome do dispositivo de disco do sistema. device_name deve estar no formulário cwt xdys2 ou cxdy s2.
O nome do arquivo de configuração de disco.
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 |
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 |
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.
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.
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 |