Blog Widget by LinkWithin

16 nov. 2015

[Tuto] Installer RHEL/CentOS 7 sur Dedibox


Ou comment transformer une Fedora 19 en RHEL/CentOS 7.0

Vous avez une Dedibox et vous voulez y installer la toute dernière Redhat Enterprise Linux 7.0. Pour vous, j'ai la solution.

1. Choix de l'installation de base

Vous avez pu constater que sur l'interface, le nombre d'OS/distribution est limité et que les versions proposées sont un peu anciennes :


Alors que faire pour installer autre chose ?

Ici, je vous présente une méthode un peu "hors piste" pour vous retrouver avec votre Dedibox sous Redhat Enterprise Linux 7. Forcément, on va partir d'une des distributions proposées. 

CentOS est une distribution communautaire qui s'efforce de fournir un OS le plus proche possible de RHEL. La communauté responsable utilise les sources même de Redhat pour fournir les différents packages. CentOS 6.x est donc très très proche de Redhat Entreprise Linux 6.x. Sauf qu'entre RHEL 6 et RHEL 7, il y a énormément de différence. A tel point que la migration d'une RHEL 6.5 à une RHEL 7.0 est très difficile voire impossible. La documentation officielle recommande carrément une Fresh install (tout effacer et tout réinstaller). Pour avoir fait quelques tests, c'est effectivement loin d'être une migration transparente.

Vous constaterez que Fedora est aussi proposé parmi les choix. Fedora est une distribution communautaire aussi. Elle suit un développement parallèle à RHEL. En gros, quand RHEL dispose de version avec support à long terme (7 ans à 10 ans) donc avec des versions de packages qui évoluent peu, Fedora bénéficie de mise à jour plus régulière et des dernières versions de packages. Fedora sert donc un peu de vitrine technologique et de tests de package pour RHEL. Chaque nouvelle version de RHEL récupère les évolutions courantes de Fedora. Ainsi, "en termes de versions logicielles, RHEL 7 se rapproche de Fedora 19". Et coup de pot pour nous :


Nous allons donc installer une Fedora 19 64 bits. Je vous laisse installer comme vous le souhaiter l'OS. La bidouille réelle se trouve post-installation.

Attention : Mettons-nous bien d'accord : l'installation via l'interface Dedibox supprime les données de la machine.

2. Configuration des dépôts

Une fois installé, vous disposez d'une magnifique Fedora 19 en 64 bits. Vous pouvez d'ailleurs constater le terme "fc19" dans les noms de package quand vous faites un rpm -qa. Ne faites surtout pas de mises à jour pour l'instant.

Nous allons commencer par configurer les dépôts. Dans les distributions utilisant yum (RHEL, CentOS et Fedora), les dépôts sont configurés dans /etc/yum.repos.d/. Logiquement, vous y trouverez ceux de Fedora configurés. Supprimez-les (ou déplacez-les autres part si vous préférez).

# ls /etc/yum.repos.d/
fedora.repo  fedora-updates.repo  fedora-updates-testing.repo
# rm /etc/yum.repos.d/fedora*

On va y configurer maintenant un dépôt/repository pour CentOS/RHEL 7.

2.1. A partir d'une image CD/DVD de RHEL7

Si vous avez la chance d'avoir un DVD de RHEL 7 ou que vous avez pu récupérer une des iso de la beta 7 et que voulez partir dessus (ou que CentOS 7 est disponible en iso d'ici là), on va commencer par copier l'iso du CD sur le serveur.

chezmoi $ scp rhel-everything-7.0-beta-1-x86_64-dvd.iso micougnou@dediboxdemoi:

On créé un point de montage et on monte l'image :

dediboxdemoi # mkdir /rhcd
dediboxdemoi # cd /home/micougnou/
dediboxdemoi # mount -o loop ./rhel-everything-7.0-beta-1-x86_64-dvd.iso /rhcd

Ensuite, on configure ce point de montage comme dépôt en ajoutant un fichier /etc/yum.repos.d/rhcd.repo contenant :

[rh7-cd]
name=RHEL7 - CD
baseurl=file:///rhcd/
enabled=1

2.2. A partir des dépôts CentOS 7

Si la CentOS 7 n'est pas encore complètement disponible à l'heure où j'écris ces lignes, il existe d'ores et déjà un dépôt contenant les RPMS de la distribution. On va donc configurer le dépôt en question. Créez un fichier /etc/yum.repos.d/centos7.repo contenant :

[centos7-buildlogs]
name=CentOS7 - Buildlogs
baseurl=http://buildlogs.centos.org/centos/7/os/x86_64-latest/
enabled=1
gpgcheck=0 

Certains packages vont être installés à la main (notamment pour les forcer). Donc veuillez télécharger les RPMS suivants et les placer sur la Dedibox.
  • grubby-*.el7.x86_64.rpm
  • glibc-*.el7.x86_64.rpm 
  • glibc-common-*.el7.x86_64.rpm 
  • nss-softokn-freebl-*.el7.x86_64.rpm 
  • nss-softokn-*.el7.x86_64.rpm 
  • nspr-*.el7.x86_64.rpm 
  • nss-util-*.el7.x86_64.rpm 
  • nss-*.el7.x86_64.rpm 
  • nss-tools-*.el7.x86_64.rpm 
  • nss-sysinit-*.el7.x86_64.rpm 
  • libnl3-*.el7.x86_64.rpm 
  • libnl3-cli-*.el7.x86_64.rpm 
  • libteam-*.el7.x86_64.rpm
  • redhat-release-server-7.0-*.el7.x86_64.rpm ou centos-release-7-*.el7.*.x86_64.rpm
  • redhat-logos-70*.el7.noarch.rpm ou centos-logos-70.*.el7.centos.noarch.rpm
  • kernel-*.el7.x86_64.rpm 
  • rpm-libs-*.el7.x86_64.rpm 
  • rpm-build-libs-*.el7.x86_64.rpm 
  • rpm-*.el7.x86_64.rpm 
  • rpm-python-*.el7.x86_64.rpm  
  • yum-*.el7.noarch.rpm 
  • basesystem-*.el7.noarch.rpm 
  • elfutils-libelf-*.el7.x86_64.rpm
  • bash-*.el7.x86_64.rpm
 Et pour vraiment se débarrasser des paquets Fedora, j'ai utilisé aussi :

  • audit-2.3.3-4.el7.x86_64.rpm audit-libs-2.3.3-4.el7.x86_64.rpm ca-certificates-2013.1.95-71.el7.noarch.rpm crontabs-1.11-6.20121102git.el7.noarch.rpm cryptsetup-libs-1.6.3-2.el7.x86_64.rpm curl-7.29.0-19.el7.x86_64.rpm diffutils-3.3-4.el7.x86_64.rpm firewalld-0.3.9-7.el7.noarch.rpm glib2-2.36.3-5.el7.x86_64.rpm gnutls-3.1.18-8.el7.x86_64.rpm hwdata-0.252-7.3.el7.noarch.rpm iproute-3.10.0-13.el7.x86_64.rpm json-c-0.11-3.el7.x86_64.rpm keyutils-libs-1.5.8-3.el7.x86_64.rpm libcap-ng-0.7.3-5.el7.x86_64.rpm  libcurl-7.29.0-19.el7.x86_64.rpm libproxy-0.4.11-6.el7.x86_64.rpm libsoup-2.42.2-3.el7.x86_64.rpm libtasn1-3.3-3.el7.x86_64.rpm    linux-firmware-20140213-0.3.git4164c23.el7.noarch.rpm openldap-2.4.39-3.el7.x86_64.rpm openssl-1.0.1e-34.el7.x86_64.rpm openssl-libs-1.0.1e-34.el7.x86_64.rpm os-prober-1.58-5.el7.x86_64.rpm plymouth-0.8.9-0.10.20140113.el7.x86_64.rpm plymouth-core-libs-0.8.9-0.10.20140113.el7.x86_64.rpm plymouth-scripts-0.8.9-0.10.20140113.el7.x86_64.rpm popt-1.13-16.el7.x86_64.rpm  qrencode-libs-3.4.1-3.el7.x86_64.rpm sqlite-3.7.17-4.el7.x86_64.rpm vim-minimal-7.4.160-1.el7.x86_64.rpm wget-1.14-10.el7.x86_64.rpm pygobject3-base-3.8.2-4.el7.x86_64.rpm
Adaptez les versions en fonction de celles que vous avez.

3. "Redhatisation"

3.1. Base

Il va falloir commencer par installer les paquets de grubby et de la glibc (avec dépendances). Le --force est là pour forcer l'installer du paquet même si celui qui est installé est plus récent (car plus récent mais Fedora).

# rpm -Uvh --nodeps grubby-8.28-8.el7.x86_64.rpm 
# rpm -Uvh --force glibc-2.17-55.el7.x86_64.rpm \
     glibc-common-2.17-55.el7.x86_64.rpm \
     nss-softokn-freebl-3.15.4-2.el7.x86_64.rpm \
     nss-softokn-3.15.4-2.el7.x86_64.rpm \      
     nspr-4.10.2-4.el7.x86_64.rpm \
     nss-util-3.15.4-2.el7.x86_64.rpm \
     nss-3.15.4-6.el7.x86_64.rpm \
     nss-tools-3.15.4-6.el7.x86_64.rpm \
     nss-sysinit-3.15.4-6.el7.x86_64.rpm 
# rpm -Uvh --force libnl3-3.2.21-6.el7.x86_64.rpm \
     libnl3-cli-3.2.21-6.el7.x86_64.rpm \
     libteam-1.9-15.el7.x86_64.rpm

Ensuite, nous pouvons lancer un yum update.

# yum update

Après cet étape, nous obtenons un système qui contient 255 paquets (contre 244 à la fin de l'installation, la magie des dépendances) donc plus que 46 venant de Fedora.

# rpm -qa | wc -l
255
# rpm -qa | grep fc | wc -l
46

3.2. Changement de distribution

Vous constaterez que nous sommes toujours en Fedora pourtant :

$ cat /etc/redhat-release
Fedora release 19 (Schrödinger’s Cat)

Le type de distribution est pas mal conditionné par les paquets de type *-logos et *-release. Nous allons donc changer ces packages.

# rpm -e --nodeps fedora-logos fedora-release
# rpm -Uvh redhat-release-server-7.0-1.el7.x86_64.rpm redhat-logos-70.0.3-4.el7.noarch.rpm

(ou centos-release-7-*.el7.*.x86_64.rpm et centos-logos-70.*.el7.centos.noarch.rpm pour les dépôts CentOS 7).

Afin de mieux coller à la distribution de destination, on va aussi forcer l'installation de yum, rpm et basesystem :

# rpm -Uvh --force kernel-3.10.0-123.el7.x86_64.rpm
# rpm -Uvh --force rpm-libs-4.11.1-16.el7.x86_64.rpm \
     rpm-build-libs-4.11.1-16.el7.x86_64.rpm \
     rpm-4.11.1-16.el7.x86_64.rpm \
     rpm-python-4.11.1-16.el7.x86_64.rpm 
# rpm -Uvh --force yum-3.4.3-118.el7.noarch.rpm
# rpm -Uvh --force basesystem-10.0-7.el7.noarch.rpm \
     elfutils-libelf-0.158-3.el7.x86_64.rpm \
     bash-4.2.45-5.el7.x86_64.rpm 

Et là, de suite, on est dans un autre monde ;)

$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo) 

3.3. Peaufinage 

Afin de bien anéantir tout paquet Fedora, vous pouvez traquer les paquets restants avec :

$ rpm -qa | grep fc

Pour ma part, j'ai dû faire :

# rpm -e libee liblognorm
# rpm -Uvh --force audit-2.3.3-4.el7.x86_64.rpm \
     audit-libs-2.3.3-4.el7.x86_64.rpm \
     ca-certificates-2013.1.95-71.el7.noarch.rpm \
     crontabs-1.11-6.20121102git.el7.noarch.rpm \
     cryptsetup-libs-1.6.3-2.el7.x86_64.rpm \
     curl-7.29.0-19.el7.x86_64.rpm \
     diffutils-3.3-4.el7.x86_64.rpm \
     firewalld-0.3.9-7.el7.noarch.rpm \
     glib2-2.36.3-5.el7.x86_64.rpm \
     gnutls-3.1.18-8.el7.x86_64.rpm \
     hwdata-0.252-7.3.el7.noarch.rpm \
     iproute-3.10.0-13.el7.x86_64.rpm \
     json-c-0.11-3.el7.x86_64.rpm \
     keyutils-libs-1.5.8-3.el7.x86_64.rpm \
     libcap-ng-0.7.3-5.el7.x86_64.rpm  \
     libcurl-7.29.0-19.el7.x86_64.rpm \
     libproxy-0.4.11-6.el7.x86_64.rpm \
     libsoup-2.42.2-3.el7.x86_64.rpm \
     libtasn1-3.3-3.el7.x86_64.rpm \
     linux-firmware-20140213-0.3.git4164c23.el7.noarch.rpm \
     openldap-2.4.39-3.el7.x86_64.rpm \
     openssl-1.0.1e-34.el7.x86_64.rpm \
     openssl-libs-1.0.1e-34.el7.x86_64.rpm \
     os-prober-1.58-5.el7.x86_64.rpm \
     plymouth-0.8.9-0.10.20140113.el7.x86_64.rpm \
     plymouth-core-libs-0.8.9-0.10.20140113.el7.x86_64.rpm \
     plymouth-scripts-0.8.9-0.10.20140113.el7.x86_64.rpm \
     popt-1.13-16.el7.x86_64.rpm  \
     qrencode-libs-3.4.1-3.el7.x86_64.rpm \
     sqlite-3.7.17-4.el7.x86_64.rpm \
     vim-minimal-7.4.160-1.el7.x86_64.rpm \
     wget-1.14-10.el7.x86_64.rpm \
     pygobject3-base-3.8.2-4.el7.x86_64.rpm
# rpm -e linux-atm-libs

Un autre point différenciant Fedora de RHEL/CentOS est que SELinux n'y est pas activé par défaut. On va donc corriger ce problème :

# sed -i "s/^SELINUX=.*$/SELINUX=permissive/" /etc/sysconfig/selinux
# setenforce Permissive

A noter que cette modification ne sera effective qu'à partir du prochain redémarrage.

4. Finalisation


L'intégralité des paquets a été changé (dont les très importants kernel et glibc). A ce moment-là, il est donc plus que recommandé de redémarrer la machine.

# reboot

Et au redémarrage, vous vous retrouvez donc avec une magnifique RHEL/CentOS 7 pleinement fonctionnelle.

Have fun ;)

0 commentaires :

Enregistrer un commentaire