21 Fazendo upgrade online #
O SUSE oferece uma ferramenta gráfica intuitiva e uma ferramenta de linha de comando simples para fazer upgrade de um sistema em execução para um novo pacote de serviço. Elas oferecem suporte para “rollback” de pacotes de serviço e muito mais. Este capítulo explica passo a passo como fazer upgrade do pacote de serviço com essas ferramentas.
21.1 Visão geral conceitual #
Antes de fazer upgrade do sistema, leia a Seção 19.3, “Preparando o sistema”.
A SUSE lança novos pacotes de serviço para a família do SUSE Linux Enterprise regularmente. Para facilitar aos clientes a migração para um novo pacote de serviço e minimizar o tempo de espera, o SUSE suporta a migração online durante a execução do sistema.
A partir do SLE 12, o YaST Wagon foi substituído pela migração do YaST (GUI) e pela migração do Zypper (linha de comando). Os seguintes recursos são suportados:
- Sistema sempre em um estado definido até a atualização do primeiro RPM 
- Cancelamento possível até a atualização do primeiro RPM 
- Recuperação simples, em caso de erro 
- “Rollback” por meio de ferramentas do sistema; sem necessidade de backup/restauração 
- Uso de todos os repositórios ativos 
- Capacidade de ignorar um pacote de serviço 
Se o sistema do qual será feito o upgrade for um cliente do SUSE Manager, não será possível fazer upgrade dele por meio da migração online do YaST nem da migraçao do zypper. Em vez disso, use o procedimento de Migração de Cliente. Ele está descrito no Guia de Upgrade do SUSE Manager, disponível em https://documentation.suse.com/suma/.
   
21.2 Workflow de migração de service pack #
   É possível executar a migração do pacote de serviço pelo YaST, zypper ou AutoYaST.
  
Antes de começar a migração do pacote de serviço, o sistema deve ser registrado no SUSE Customer Center ou em um servidor SMT local. É possível também usar o SUSE Manager.
Independentemente do método, a migração de service pack consiste nas seguintes etapas:
- Localize os destinos de migração possíveis em seus sistemas registrados. 
- Selecione um destino de migração. 
- Solicite e habilite novos repositórios. 
- Execute a migração. 
A lista de destinos de migração depende dos produtos que você instalou e registrou. Se você tem uma extensão instalada para a qual ainda não há um novo SP disponível, talvez nenhum destino de migração seja oferecido a você.
A lista de destinos de migração disponíveis para o seu host sempre será recuperada do SUSE Customer Center e depende dos produtos ou extensões instalados.
21.3 Cancelando a migração do pacote de serviço #
É possível cancelar a migração do pacote de serviço apenas em fases específicas do processo:
- Até o upgrade do pacote ser iniciado, há apenas mudanças mínimas no sistema, como para serviços e repositórios. Restaure - /etc/zypp/repos.d/*para reverter ao estado anterior.
- Depois que o upgrade do pacote é iniciado, você poderá reverter ao estado anterior usando um instantâneo do Snapper (consulte o Chapter 7, System Recovery and Snapshot Management with Snapper). 
- Depois que o destino de migração for selecionado, o SUSE Customer Center mudará os dados do repositório. Para reverter esse estado manualmente, use - SUSEConnect- --rollback.
21.4 Fazendo upgrade com a ferramenta Migração Online (YaST) #
Para executar a migração do pacote de serviço com o YaST, use a ferramenta . Por padrão, o YaST não instala nenhum pacote de um repositório de terceiros. Se um pacote foi instalado de um repositório de terceiros, o YaST impede que os pacotes sejam substituídos pelo mesmo pacote que vem do SUSE.
Ao executar a migração do SP, o YaST instalará todos os pacotes recomendados. Principalmente no caso das instalações mínimas personalizadas, isso pode aumentar o tamanho da instalação do sistema de forma significativa.
    Para mudar este comportamento padrão e permitir apenas os pacotes necessários, ajuste a opção solver.onlyRequires em /etc/zypp/zypp.conf.
   
solver.onlyRequires = true
    Edite também o arquivo /etc/zypp/zypper.conf e mude a opção installRecommends.
   
installRecommends=false
Isso muda o comportamento de todas as operações de pacote, como a instalação de patches ou novos pacotes.
Para iniciar a migração do pacote de serviço, faça o seguinte:
- Desative todas as extensões não utilizadas em seu servidor de registro para evitar conflitos futuros de dependência. Se você se esquecer de uma extensão, o YaST detectará posteriormente os repositórios de extensões não utilizadas e as desativará. 
- Se você efetuou login em uma sessão do GNOME em execução na máquina que você pretende atualizar, alterne para um console de texto. Não é recomendável executar a atualização de uma sessão GNOME. Observe que isso não se aplica quando o login é efetuado de uma máquina remota (a menos que você esteja executando uma sessão VNC com GNOME). 
- Se você é um assinante do LTSS, deve desativar o repositório LTSS. Isso não pode ser feito com o YaST. Em vez disso, execute estes comandos usando o número de versão do repositório instalado: - tux >- sudoSUSEConnect -d -p SLES-LTSS/12.2/x86_64- tux >- sudozypper ref -s- Consulte este boletim de suporte, zypper migration with LTSS repo results in "No migration available", para obter mais informações em https://www.suse.com/support/kb/doc/?id=7022381. 
- Instale o pacote yast2-migration e suas dependências (no YaST em › ). 
- Reinicie o YaST; do contrário, o módulo recém-instalado não será mostrado no centro de controle. 
- No YaST, escolha (dependendo da versão do SUSE Linux Enterprise Server da qual você está fazendo upgrade, este módulo será classificado como ou ). O YaST mostra os destinos de migração possíveis e um resumo. Se houver mais de um destino de migração disponível para o seu sistema, selecione um deles na lista. 
- Selecione um destino de migração na lista e clique em para continuar. 
- Se a ferramenta de migração oferecer repositórios de atualização, recomenda-se clicar em para continuar. 
- Se a ferramenta Migração Online encontrar repositórios obsoletos de DVD ou de um servidor local, será altamente recomendado desabilitá-los. Os repositórios obsoletos são de um SP anterior. Qualquer repositório antigo do SCC ou da SMT é removido automaticamente. 
- Confira o resumo e clique em para continuar a migração. Clique em para confirmar. 
- Reinicie o sistema após a migração bem-sucedida. 
21.5 Fazendo upgrade com o Zypper #
   Para executar a migração do pacote de serviço com o Zypper, use a ferramenta de linha de comando zypper migration do pacote
   zypper-migration-plugin.
  
Ao executar a migração do SP, o YaST instalará todos os pacotes recomendados. Principalmente no caso das instalações mínimas personalizadas, isso pode aumentar o tamanho da instalação do sistema de forma significativa.
    Para mudar este comportamento padrão e permitir apenas os pacotes necessários, ajuste a opção solver.onlyRequires em /etc/zypp/zypp.conf.
   
solver.onlyRequires = true
    Edite também o arquivo /etc/zypp/zypper.conf e mude a opção installRecommends.
   
installRecommends=false
   Isso muda o comportamento de todas as operações de pacote, como a instalação de patches ou novos pacotes. Para mudar o comportamento do Zypper para uma única chamada, adicione o parâmetro --no-recommends à linha de comando.
  
Para iniciar a migração do pacote de serviço, faça o seguinte:
- Se você efetuou login em uma sessão do GNOME em execução na máquina que você pretende atualizar, alterne para um console de texto. Não é recomendável executar a atualização de uma sessão GNOME. Observe que isso não se aplica quando o login é efetuado de uma máquina remota (a menos que você esteja executando uma sessão VNC com GNOME). 
- Registre a máquina do SUSE Linux Enterprise, caso ainda não tenha feito isso: - sudo - SUSEConnect--regcode YOUR_REGISTRATION_CODE
- Se você é um assinante do LTSS, deve desativar o repositório LTSS. Execute estes comandos usando o número de versão do repositório instalado: - tux >- sudoSUSEConnect -d -p SLES-LTSS/12.2/x86_64- tux >- sudozypper ref -s- Consulte este boletim de suporte, zypper migration with LTSS repo results in "No migration available", para obter mais informações em https://www.suse.com/support/kb/doc/?id=7022381. 
- Instale as atualizações mais recentes: - sudo - zypperpatch
- Instale o pacote zypper-migration-plugin e suas dependências: - sudo - zypperin zypper-migration-plugin
- Execute - zypper- migration:- tux >sudo- zyppermigration Executing 'zypper patch-check' Refreshing service 'SUSE_Linux_Enterprise_Server_12_x86_64'. Loading repository data... Reading installed packages... 0 patches needed (0 security patches) Available migrations: 1 | SUSE Linux Enterprise Server 12 SP1 x86_64 2 | SUSE Linux Enterprise Server 12 SP2 x86_64- Algumas observações sobre o processo de migração: - Se houver mais de um destino de migração disponível para o seu sistema, o Zypper permitirá selecionar um SP na lista. Isso equivale a ignorar um ou mais SPs. Lembre-se de que a migração online para produtos base (SLES, SLED) permanece disponível apenas entre os SPs de uma versão principal. 
- Por padrão, o Zypper usa a opção - --no-allow-vendor-change, que é passada para o- zypper- dup. Se um pacote foi instalado de um repositório de terceiros, essa opção impede que os pacotes sejam substituídos pelo mesmo pacote que vem do SUSE.
- Se o Zypper encontrar repositórios obsoletos de DVD ou de um servidor local, será altamente recomendado desabilitá-los. Os repositórios SCC ou SMT antigos são automaticamente removidos. 
 
- Revise todas as mudanças, principalmente os pacotes que serão removidos. Digite - ypara continuar (o número exato de pacotes para upgrade pode variar de acordo com o sistema):- 266 packages to upgrade, 54 to downgrade, 17 new, 8 to reinstall, 5 to remove, 1 to change arch. Overall download size: 285.1 MiB. Already cached: 0 B After the operation, additional 139.8 MiB will be used. Continue? [y/n/? shows all options] (y): - Use as teclas Shift–Page ↑ ou Shift–Page ↓ para mover a barra de rolagem no shell. 
- Reinicie o sistema após a migração bem-sucedida. 
21.6 Fazendo upgrade com o Zypper simples #
Se você não pode usar a migração do YaST ou do Zypper, ainda pode migrar com o Zypper simples e algumas interações manuais. Para iniciar a migração do pacote de serviço, faça o seguinte:
- Se você efetuou login em uma sessão do GNOME em execução na máquina que você pretende atualizar, alterne para um console de texto. Não é recomendável executar a atualização de uma sessão GNOME. Observe que isso não se aplica quando o login é efetuado de uma máquina remota (a menos que você esteja executando uma sessão VNC com GNOME). 
- Atualize as ferramentas de gerenciamento de pacote com os repositórios antigos do SUSE Linux Enterprise: - sudo - zypperpatch --updatestack-only
- Se o sistema foi registrado, o registro dele precisa ser cancelado: - sudo - SUSEConnect--de-register
- Remova as fontes de instalação e repositórios antigos e ajuste os repositórios de terceiros. 
- Adicione as novas fontes de instalação, sejam elas locais ou remotas (para o marcador REPOSITÓRIO, consulte a Seção 18.6, “Modelo de repositório”): - sudo - zypperaddrepo REPOSITORY- Você também pode usar o SUSE Customer Center ou a SMT (Subscription Management Tool). O comando para o SUSE Linux Enterprise 12 SP1 em x86-64 é: - sudo - SUSEConnect-p SLES/12.2/x86_64 OPTIONS- Lembre-se de que os upgrades compatíveis com várias arquiteturas não são suportados. - O Zypper exibirá um conflito entre o kernel antigo e o novo. Escolha a Solução 1 para continuar. - Problem: product:SLES-12.2-0.x86_64 conflicts with kernel < 4.4 provided by kernel-default-VERSION Solution 1: Following actions will be done: replacement of kernel-default-VERSION with kernel-default-VERSION deinstallation of kernel-default-VERSION Solution 2: do not install product:SLES-12.2-0.x86_64 
- Finalize a migração: - sudo - zypperref -f -s sudo- zypperdup --no-allow-vendor-change --no-recommends- O primeiro comando atualiza todos os serviços e repositórios. O segundo comando executa o upgrade da distribuição. Neste ponto, as duas últimas opções são importantes: - -no-allow-vendor-changegarante que os RPMs de terceiros não sobregravarão os RPMs do sistema básico. A opção- --no-recommendsgarante que os pacotes desmarcados durante a instalação inicial não serão adicionados novamente.
21.7 Voltando um pacote de serviço #
Se um pacote de serviço não funcionar para você, o SUSE Linux Enterprise permitirá reverter o sistema ao estado anterior à inicialização da migração do pacote de serviço. O pré-requisito é uma partição raiz Btrfs com instantâneos ativados (este é o padrão ao instalar o SLES 12). Consulte o Chapter 7, System Recovery and Snapshot Management with Snapper para obter os detalhes.
- Confira uma lista de todos os instantâneos do Snapper: - sudo snapper list - Revise a saída para localizar o instantâneo que foi criado logo antes da inicialização da migração do pacote de serviço. A coluna contém uma declaração correspondente, e o instantâneo está marcado como - important(importante) na coluna . Memorize o número do instantâneo da coluna e a data da coluna .
- Reinicialize o sistema. No menu de boot, selecione e escolha o instantâneo com a data e o número que você memorizou na etapa anterior. Um segundo menu de boot (aquele do instantâneo) é carregado. Selecione a entrada que começa com - SLES 12e inicialize-a.
- O sistema é inicializado no estado anterior com a partição do sistema montada como apenas leitura. Efetue login como - roote verifique se você escolheu o instantâneo correto. Verifique também se tudo funciona conforme o esperado. Como o sistema de arquivos raiz está montado como apenas leitura, pode haver restrições de funcionalidade.- Em caso de problemas ou se você inicializou o instantâneo errado, reinicialize e escolha outro instantâneo do qual inicializar. Até este ponto, não foram feitas mudanças permanentes. Se o instantâneo está correto e funciona conforme o esperado, faça a mudança permanente executando o seguinte comando: - snapper rollback - Reinicialize posteriormente. Na tela de boot, escolha a entrada de boot padrão para reinicializar no sistema restaurado. 
- Verifique se a configuração do repositório foi redefinida apropriadamente. Verifique também se todos os produtos foram registrados apropriadamente. Se não for nenhum desses casos, a atualização do sistema em um momento posterior talvez não funcione mais, ou o sistema pode ser atualizado usando os repositórios de pacotes errados. - Verifique se o sistema pode acessar a Internet antes de iniciar este procedimento. - Atualize serviços e repositórios executando - sudo zypper ref -fs 
- Obtenha uma lista de repositórios ativos executando - sudo zypper lr - Verifique cuidadosamente a saída deste comando. Não deve aparecer na lista serviços e repositórios que foram adicionados para a atualização. Por exemplo, se você está voltando de uma migração de pacote de serviço do SLES 12 SP1 para o SLES 12 SP2, a lista não deve incluir os repositórios - SLES12-SP2-Poole- SLES12-SP2-Updates; mas, em vez disso, as versões- SP1.- Se na lista constar os repositórios incorretos, apague-os e, se necessário, substitua-os pelas versões correspondentes à versão do produto ou do pacote de serviço. Para obter uma lista de repositórios para os caminhos de migração suportados, consulte a Seção 18.6, “Modelo de repositório”. 
- Por fim, verifique o status do registro para todos os produtos instalados executando - SUSEConnect --status - Todos os produtos devem ser relatados como - Registered(Registrados). Se não for esse o caso, conserte o registro executando- SUSEConnect --rollback 
 
Agora, você reverteu com êxito o sistema ao estado que foi capturado logo antes da inicialização da migração do pacote de serviço.