Busca


imprimir pdf

Tudo sobre as releases OVH


As releases OVH são scripts bash dos quais fazemos o download e executamos sobre um servidor dedicado instalado pela OVH no âmbito de o actualizar. Administrar a máquina em ssh (shell sob bach).

As vantagens deste patchs:

  • Rapidez.
  • Simplicidade.
  • Estabilidade.


Atenção: Não aplique a release se o seu servidor está personalizado ao nível da configuração. Isto quer dizer, php, apache, mysql. Todas as opções de compilação serão perdidas no momento da aplicação do patch. Certas releases são patchs de segurança, ou seja, se não actualizar a sua máquina, ela corre o risco de ser hackada muito facilmente.


Com simplicidade


Pouco importa a distribuição (Release 1 ou Release 2) que utiliza, execute simplesmente um patch all via ssh ou via o módulo "comand shell em webmin", secção outros.

wget ftp://ftp.ovh.net/made-in-ovh/release/patch-all.sh -O patch-all.sh; sh patch-all.sh



Em modo avançado


Os detalhes indicados abaixo dizem respeito sobretudo a Release 1 OVH.


Vocabulário

Release ou patch: a release é um script que se descarrega e se executa. Por exemplo:

wget ftp://ftp.ovh.net/made-in-ovh/release/patch-1.38-1.39.sh -O patch-1.38-1.39.sh; sh patch-1.38-1.39.sh


Quando o download estiver feito e que se executa, o script verifica primeiro se esta a executar a release correcta. Isto evita que executamos a release 1.38 antes da release 1.34 por exemplo.

n° de release: as releases executam-se num certa ordem. Historicamente, começamos sobre a 1.04. Se tenta executar as releases na ordem errada, elas recusarão de serem executadas.


Filosofia


Para fazer funcionar as releases, implementamos um sistema de bloqueamento para permitir a execução na ordem exacta. Criámos então o ficheiro /etc/ovhrelease onde a release actual da máquina está identificada. A nova release vai primeiro verificar que a release instalada sobre a máquina é de facto a precedente a ela-mesma e somente neste caso é que ela se executará.

root@ns30096 root# cat /etc/ovhrelease
1.37


A cada execução da release actualizámos /etc/issue o que permite de ver o n° de release no momento da ligação da máquina:

Red Hat Linux release 7.2 (Enigma)
Linux ns30096.ovh.net 2.4.19 #2 SMP mer nov 20 17:40:06 CET 2002 i686 unknown

machine : 2344
release : 1.37
ip : 213.186.42.25
hostname : ns30096.ovh.net
root@ns30096 root#


Changelog


O histórico ou changelog está disponível em
ftp://ftp.ovh.net/made-in-ovh/release/CHANGELOG.release.


Aplicar release por release


Para aplicar uma nova release, basta ligar-se em SSH sobre a máquina e copiar-colar o comando :

root@ns30096 root# wget ftp://ftp.ovh.net/made-in-ovh/release/patch-1.37-1.38.sh -O patch-1.37-1.38.sh; sh patch-1.37-1.38.sh
...


O patch começará a executar-se e fará o seu trabalho. A sua execução pode levar alguns minutos.

...
Paragem de sshd : OK
Arranque de sshd : OK

OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.6i engine Feb 19 2003

root@ns30096 root# cat /etc/issue
Red Hat Linux release 7.2 (Enigma)
Linux ns30096.ovh.net 2.4.19 #2 SMP mer nov 20 17:40:06 CET 2002 i686 unknown

machine : 2344
release : 1.38
ip : 213.186.42.25
hostname : ns30096.ovh.net



Já está, passamos da release 1.37 à 1.38 e o servidor sshd foi actualizado.


Aplicar todas as releases


Para evitar de ver a cada vez em qual release o seu servidor se encontra, tem a possibilidade de executar um patch-all.sh que executará automaticamente as releases correctas na ordem exacta. Não tem nada a fazer.

root@ns30096 root# wget ftp://ftp.ovh.net/made-in-ovh/release/patch-all.sh -O patch-all.sh; sh patch-all.sh
...


patch-all.sh lança todas as releases detectadas e executa as que se adequam.

...
Red Hat Linux release 7.2 (Enigma)
Linux ns30096.ovh.net 2.4.19 #2 SMP mer nov 20 17:40:06 CET 2002 i686 unknown

machine : 2344
release : 1.39
ip : 213.186.42.25
hostname : ns30096.ovh.net


E estamos em 1.39


Outras funcionalidades


Patch-all.sh também coloca a hora a sua máquina utilizando um sistema de cálculo da variação do erro. Ou seja, antes de actualizar a hora, ele vê de quanto é a diferença e actualiza este valor. Depois clockspeed que está instalado sobre a sua máquina utiliza este valor todos os X minutos para corrigir a hora de acordo com a variação. O que faz que a sua máquina estará sempre a hora e não unicamente quando for próprio a actualizar a hora. Não deve executar muitas vezes a actualização desta diferença, porque o cálculo tem melhores resultados com maiores diferenças.


Fora das release


As máquinas que não foram instaladas em release (antes de uma certa data) podem ser actualizados com os patchs. Os patchs são scripts relativamente automatizados, testados sobre várias plataformas (logo com uma detecção da plataforma). Mas visto que cada máquina é diferente com a sua própria história, devemos adaptá-los a cada máquina. Pode então fazer o download destes, editá-los, modificar e executar em seguida. Se obtém erros de compilação, consulte as mailing-lists como sd@ml.ovh.net. Não envie email ao suporte. Não o poderemos ajudar sobre este tipo de problemas via o suporte, porque a solução ao problema não é uma resposta mas uma conversa. Por isso, deve utilizar as mailing-lists.

Os patchs encontram-se em ftp://ftp.ovh.net/made-in-ovh/patch. Tem:

  • os patchs para apache (servidor web):

-rwxr-xr-x 3517 jui 7 2002 apache_1.3.26+mod_ssl-2.8.10+php_4.2.1.sh
-rwxr-xr-x 3517 jui 22 2002 apache_1.3.26+mod_ssl-2.8.10+php_4.2.2.sh
-rwxr-xr-x 3517 sep 11 2002 apache_1.3.26+mod_ssl-2.8.10+php_4.2.3.sh
-rwxr-xr-x 3656 oct 4 2002 apache_1.3.27+mod_ssl-2.8.11+php_4.2.3.sh
-rwxr-xr-x 4567 jun 20 2003 apache_1.3.27+mod_ssl-2.8.14+php_4.3.2.sh
-rwxr-xr-x 4567 aoû 31 2003 apache_1.3.28+mod_ssl-2.8.15+php_4.3.3.sh
-rwxr-xr-x 4601 déc 4 21:44 apache_1.3.29+mod_ssl-2.8.16+php_4.3.4.sh


  • os patchs para bind (named):

-rwxr-xr-x 825 jui 7 2002 named_8.3.3.sh
-rwxr-xr-x 2320 jui 22 15:55 named_9.2.1-noshell.sh
-rwxr-xr-x 2407 jui 8 2002 named_9.2.1.sh


  • os patchs para ssh :

-rw-r--r-- 2481 sep 29 02:23 rebuild-ssh-auto.sh
-rw-r--r-- 2188 mar 24 2003 rebuild-ssh-downgrad.sh
-rw-r--r-- 2564 sep 28 20:10 rebuild-ssh.sh


  • os patchs para ssl :

-rw-r--r-- 1086 mar 24 2003 rebuild-ssl-downgrad.sh
-rw-r--r-- 1079 mar 23 2003 rebuild-ssl.sh


  • e outros :

-rw-r--r-- 1234 jun 17 12:25 patch_reboot.sh
-rw-r--r-- 403 mar 4 2002 patch_resolv.sh
-rwxr-xr-x 627 jun 2 14:28 check_reboot.sh
-rw-r--r-- 634 jui 10 2002 a_l_heure.sh
-rwxr-xr-x 2230 aoû 22 2002 rc.sysinit.patch.sh



Exemplo Fora Release

Aqui está um exemplo de uma máquina com um ssh e openssl que não está em dia:

# ssh -V
OpenSSH_3.4p1, SSH protocols 1.5/2.0, OpenSSL 0x0090600f

# openssl version

OpenSSL 0.9.6 24 Sep 2000



Vamos primeiro recompilar openssl porque é utilizado por outros programas como apache, ssh, qmail etc.

# wget ftp://ftp.ovh.net/made-in-ovh/patch/rebuild-ssl.sh -O rebuild-ssl.sh

# sh rebuild-ssl.sh



5 minutos mais tarde

# openssl version
OpenSSL 0.9.6l engine 04 Nov 2003



Já está. Estamos na versão correcta de openssl. Vamos agora passar a ssh.

# wget ftp://ftp.ovh.net/made-in-ovh/patch/rebuild-ssh.sh -O rebuild-ssh.sh

# sh rebuild-ssh.sh
# ssh -V

OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.6l engine 04 Nov 2003



Pomos um kernel mais recente:

# uname -a
Linux ns3060.ovh.net 2.4.16 #1 lun déc 17 15:22:27 CET 2001 i686 unknown

# cat /proc/cpuinfo

cpu MHz : 846.870

# wget ftp://ftp.ovh.net/made-in-ovh/bzImage/bzImage-2.4.25-grs-piii
# wget ftp://ftp.ovh.net/made-in-ovh/bzImage/System.map-2.4.25-grs-piii
# pico /etc/lilo.conf
# /sbin/lilo
# reboot
# logout

$ ping xxxxxx
$ ssh xxxxxx

# uname -a

Linux nsxxxx.ovh.net 2.4.21-grsec #1 mer jun 18 01:41:51 CEST 2003 i686 unknown



Agora, recompilamos apache:

# wget ftp://ftp.ovh.net/made-in-ovh/patch/apache_1.3.29+mod_ssl-2.8.16+php_4.3.4.sh

# sh apache_1.3.29+mod_ssl-2.8.16+php_4.3.4.sh


cat: /etc/ovhrelease: Nenhum ficheiro ou directorio deste tipo
A release do sistema é

IMPORTANTE:

verificação das versões disponíveis de openssl:
OpenSSL 0.9.6l engine 04 Nov 2003
OpenSSL 0.9.6d 9 May 2002



Isto não é bom, quer dizer que existe uma versão de openssl compilada a mão:

# rm -rf /usr/local/ssl



Repetimos :

# cd

# sh apache_1.3.29+mod_ssl-2.8.16+php_4.3.4.sh

cat: /etc/ovhrelease: Nenhum ficheiro ou directorio deste tipo
A release do sistema é

IMPORTANTE:

verificação das versões disponíveis de openssl:
OpenSSL 0.9.6l engine 04 Nov 2003
...



15 minutos mais tarde:

make: Deixe o directório `/home/ovh/src/apache_1.3.29'
src
se a compilação correu bem, pode instalar esta versão em produção com os seguintes comandos:

cd /home/ovh/src/apache_1.3.29
make install
/etc/rc.d/init.d/httpd restart

depois verificar a versão actualmente em curso

/usr/local/apache/bin/httpd -v
/usr/local/bin/php -v

1.
2.
# cd /home/ovh/src/apache_1.3.29
# make install
# /etc/rc.d/init.d/httpd restart

Stopping httpd: OK
Starting httpd: Syntax error on line 191 of /usr/local/apache/conf/httpd.conf:
Missing, invalid, or non-numeric port
FAILED

# pico /usr/local/apache/conf/httpd.conf
# /etc/rc.d/init.d/httpd restart

Stopping httpd: FAILED
Starting httpd: OK

# /usr/local/apache/bin/httpd -v

Server version: Apache/1.3.29 (Unix)
Server built: Nov 12 2003 20:31:33

# /usr/local/bin/php -v

Zend Optimizer requires Zend Engine API version 20001224.
The Zend Engine API version 20021010 which is installed, is newer.
Contact Zend Technologies at http://www.zend.com/ for a later version of Zend Optimizer.

PHP 4.3.4 (cgi) (built: Nov 12 2003 20:30:11)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies



Release 3


Poderá atualizar a sua relase 3 a partir do acesso SSH do seu servidor dedicado através do seguinte comando:

ftp://ftp.ovh.net/made-in-ovh/release/patch-all-release-3.sh && sh patch-all-release-3.sh


Se a sua release já está atualizada, deverá encontrar a seguinte mensagem durante a execução do comando:


... found OVH-Release 3
+-------------------------------+

! OVH-Release is up to date ! !

+-------------------------------+


Para atualizar os seus pacotes, aceda à interface Webmin e se uma atualização estiver disponível, encontrará o seguinte na sua página principal:


Mises à jours de Paquet: 1 package updates are available


Clique em:
"1 package update are available",

e depois em:
"update package".

O que dará como resultado algo do género:


Building complete list of updates ..

Now updating tzdata ..

Installing package(s) with command yum -y install tzdata ..

Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.ovh.net
* epel: mirror.muntinternet.net
* extras: mirror.ovh.net
* rpmforge: mirror.nl.leaseweb.net
* updates: mirror.ovh.net
1398 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tzdata.noarch 0:2013c-2.el6 will be updated
---> Package tzdata.noarch 0:2013g-1.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
==========================================================================
Updating:
tzdata noarch 2013g-1.el6 updates 457 k

Transaction Summary
=============================================================================
Upgrade 1 Package(s)

Total download size: 457 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : tzdata-2013g-1.el6.noarch 1/2
Cleanup : tzdata-2013c-2.el6.noarch 2/2
Verifying : tzdata-2013g-1.el6.noarch 1/2
Verifying : tzdata-2013c-2.el6.noarch 2/2

Updated:

Complete!

.. install complete.


Para conhecer a versão da release (atualmente instalada no servidor), deverá excetutar o seguinte comando através do seu acesso SSH:

cat /etc/ovhrelease


O ficheiro "changelog" está disponível no seguinte endereço:

ftp://ftp.ovh.net/made-in-ovh/release/

Aceda à seção desejada.

Por exemplo. : update_3.25-3.26/CHANGELOG

O URL relativo ao update da versão 3.25 para a versão 3.26 é :

ftp://ftp.ovh.net/made-in-ovh/release/update_3.25-3.26/CHANGELOG