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 .
[[email protected] 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.
[[email protected] rdc]#
Agora, vamos instalar o editor de texto nano .
[[email protected] 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!
[[email protected] 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.
[[email protected] 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.
[[email protected] 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.
[[email protected] 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 -
[[email protected] rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* updates: mirror.compevo.com
[[email protected] 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 .
[[email protected] 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!
[[email protected] 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.
[[email protected] 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.