Admin Linux - atualizações do sistema

O sistema CentOS 7 pode ser atualizado de três maneiras -

  • Manually
  • Automatically
  • Atualize manualmente para os principais problemas de segurança e configure atualizações automáticas

Em um ambiente de produção, é recomendável atualizar manualmente para servidores de produção. Ou pelo menos estabeleça um plano de atualização para que o administrador possa garantir serviços vitais para as operações de negócios.

É plausível que uma atualização de segurança simples possa causar problemas recursivos com aplicativos comuns que requerem atualização e reconfiguração por um administrador. Portanto, esteja cansado de programar atualizações automáticas na produção antes de testar primeiro nos servidores de desenvolvimento e desktops.

Atualizar manualmente o CentOS 7

Para atualizar o CentOS 7, queremos nos familiarizar com o comando yum .yumé usado para lidar com repositórios de pacotes no CentOS 7. yum é a ferramenta comumente usada para -

  • Atualize o sistema CentOS 7 Linux
  • Procure por pacotes
  • Instale pacotes
  • Detecte e instale dependências necessárias para pacotes

Para usar o yum para atualizações, seu servidor CentOS precisará estar conectado à Internet. A maioria das configurações instalará um sistema básico, então use yum para consultar o repositório principal CentOS para funcionalidades adicionais em pacotes e aplicar atualizações de sistema.

Já usamos o yum para instalar alguns pacotes. Ao usar o yum, você sempre precisará fazer isso como usuário root. Ou um usuário com acesso root. Então, vamos procurar e instalar um editor de texto fácil de usar chamado nano .

[root@centos rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.rackspace.com
 * epel: mirror.chpc.utah.edu
 * extras: repos.forethought.net 
 * updates: repos.forethought.net 
====================================================================== 
      N/S matched: nano 
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
 Name and summary matches only, use "search all" for everything.
 
[root@centos rdc]#

Agora, vamos instalar o editor de texto nano .

[root@centos rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================  
Package                             Arch
Version                          Repository                            Size  
================================================================================  
 Installing: 
 nano                               x86_64
 2.3.1-10.el7                    base                                  440 k
 
Transaction Summary
Install  1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : nano-2.3.1-10.el7.x86_64
1/1  
 Verifying  : nano-2.3.1-10.el7.x86_64
1/1  
Installed: 
 nano.x86_64 0:2.3.1-10.el7
 
Complete!

[root@centos rdc]#

Instalamos o editor de texto nano. Este método, IMO, é muito mais fácil do que pesquisar utilitários em sites e executar manualmente os instaladores. Além disso, os repositórios usam assinaturas digitais para validar os pacotes, garantindo que eles vêm de uma fonte confiável com o yum. Cabe ao administrador validar a autenticidade ao confiar em novos repositórios. É por isso que é considerado uma prática recomendada estar cansado de repositórios de terceiros.

Yum também pode ser usado para remover um pacote.

[root@centos rdc]# yum remove nano 
Loaded plugins: fastestmirror, langpacks 
Resolving Dependencies 
--> Running transaction check 
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased 
--> Finished Dependency Resolution

Dependencies Resolved

Agora vamos verificar se há atualizações.

[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64           1:1.4.0-17.el7_3       updates
NetworkManager-adsl.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-glib.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-libnm.x86_64     1:1.4.0-17.el7_3       updates
NetworkManager-team.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-tui.x86_64       1:1.4.0-17.el7_3       updates
NetworkManager-wifi.x86_64      1:1.4.0-17.el7_3       updates
audit.x86_64                    2.6.5-3.el7_3.1        updates
audit-libs.x86_64               2.6.5-3.el7_3.1        updates
audit-libs-python.x86_64

Conforme representado, temos algumas dezenas de atualizações pendentes para instalar. Na verdade, há cerca de 100 atualizações no total, uma vez que ainda não configuramos as atualizações automáticas. Portanto, vamos instalar todas as atualizações pendentes.

[root@centos rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: pubmirror1.math.uh.edu
 * extras: repos.forethought.net
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
 selinux-policy            noarch      3.13.1102.el7_3.15      updates     414 k
 selinux-policy-targeted   noarch      3.13.1102.el7_3.15      updates     6.4 M 
 systemd                   x86_64      21930.el7_3.7           updates     5.2 M 
 systemd-libs              x86_64      21930.el7_3.7           updates     369 k 
 systemd-python            x86_64      21930.el7_3.7           updates     109 k 
 systemd-sysv              x86_64      21930.el7_3.7           updates     63 k 
 tcsh                      x86_64      6.18.01-13.el7_3.1      updates     338 k 
 tzdata                    noarch      2017a1.el7              updates     443 k 
 tzdata-java               noarch      2017a1.el7              updates     182 k 
wpa_supplicant             x86_64      1:2.021.el7_3           updates     788 k  

Transaction Summary 
=============================================================================== 
  Install   2 Packages 
  Upgrade  68 Packages 
Total size: 196 M 
Total download size: 83 M 
Is this ok [y/d/N]:

Após pressionar a tecla "y", a atualização do CentOS 7 começará. O processo geral pelo qual o yum passa durante a atualização é -

  • Verifica os pacotes atuais
  • Procura no repositório por pacotes atualizados
  • Calcula as dependências necessárias para pacotes atualizados
  • Atualizações de downloads
  • Instala atualizações

Agora, vamos ter certeza de que nosso sistema está atualizado -

[root@centos rdc]# yum list updates 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * updates: mirror.compevo.com

[root@centos rdc]#

Como você pode ver, não há atualizações listadas.

Configurar atualizações automáticas para YUM

Em um ambiente corporativo, conforme mencionado anteriormente, as atualizações automáticas podem ou não ser o método preferido de instalação. Vamos repassar as etapas para configurar atualizações automáticas com yum.

Primeiro, instalamos um pacote chamado yum-cron .

[root@centos rdc]# yum -y install yum-cron
Install  1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
|  61 kB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
  Verifying  : yum-cron-3.4.3-150.el7.centos.noarch
1/1

Installed: 
 yum-cron.noarch 0:3.4.3-150.el7.centos
 
Complete!

[root@centos rdc]#

Por padrão, o yum-cron apenas baixa as atualizações e não as instala. A opção de instalar atualizações automaticamente está no Administrador. A maior ressalva é: algumas atualizações exigirão a reinicialização do sistema. Além disso, algumas atualizações podem exigir uma alteração na configuração antes que os serviços estejam operacionais novamente.

Atualizar dependências pode possivelmente criar um problema recursivo na seguinte situação -

  • Uma atualização é recomendada pelo yum para uma certa biblioteca

  • A biblioteca suporta apenas o servidor Apache 2.4, mas temos o servidor 2.3

  • Nosso site de comércio depende de uma determinada versão do PHP

  • A nova versão do Apache instalada para a biblioteca requer atualização do PHP

  • Nossos aplicativos de produção da web ainda não foram testados com a versão mais recente do PHP

Yum pode ir em frente e atualizar automaticamente o Apache e o PHP sem aviso prévio, a menos que seja configurado para não fazê-lo.

Se todos os 5 cenários funcionarem, isso pode resultar em qualquer coisa, desde uma grande dor de cabeça pela manhã até um possível comprometimento da segurança expondo os dados do usuário. Embora o exemplo acima seja uma espécie de tempestade perfeita, nunca queremos que tal cenário se desenrole.

Cabe ao administrador acessar os possíveis cenários de perda potencial de receita com o tempo necessário para restaurar os serviços devido ao possível tempo de inatividade devido a reinicializações e reconfigurações de atualização. Essa prática pode não ser conservadora o suficiente para, digamos, um site de comércio eletrônico de milhões de dólares por dia com milhões de clientes.

Agora vamos configurar o yum-cron para instalar automaticamente as atualizações do sistema.

[root@centos rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available.  Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes

Queremos alterar apply_updates = no para apply_updates = yes . Agora vamos configurar o intervalo de atualização do yum-cron .

Novamente, usar atualizações automáticas e instalar atualizações sob demanda pode ser uma faca de dois gumes e precisa ser considerado por um administrador para cada situação única.