La première partie de cet article explique comment créer un RPM qui contient une base de données Oracle 12c Release 1 Enterprise Edition et comment l’utiliser sur un serveur Oracle Linux 6 x86_64 avec "rpm --install"
. Vous pouvez facilement adapter cette méthode à vos besoins et construire vos propres paquets en fonction de votre version et edition. Envoyez un Tweet pour aller plus loin dans la discussion et fournir vos retours concernant les fichiers de “build”.
Quoiqu’il en soit, une fois que vous aurez construit un RPM, vous n’aurez fait que la moitié du chemin. Pour déployer Linux rapidement vous aurez besoin de construire un référentiel YUM et lui ajouter le RPM. C’est justement le sujet de cette seconde partie de l’article.
Une façon simple de publier un référentiel YUM consiste à utiliser un serveur web tel que Apache HTTP server. Dans ce cas, le répertoire que vous utiliserez doit être paramétré avec les options suivantes "Indexes FollowSymLinks Multiviews"
. Dans les sections suivantes, considérez que le référentiel YUM est fourni par Apache et notamment :
- Que le répertoire local des fichiers sur le serveurs est
/var/www/html/yum/OracleSoftware/x86_64
- Qu’il est accessible à l’URL suivante
http://yum.easyteam.fr/OracleSoftware/x86_64
; Inutile d’y accéder cette URL n’existe pas 😉
Etape 1 – Copier le RPM dans votre répertoire
Comme vous pouvez facilement l’imaginer, la première étape de la procédure consiste à pousser vos RPMs sur votre serveur HTTP. Pour cela, utilisez la méthode de votre choix, comme, par exemple, SCP :
ssh root@yum.arkoyd.com mkdir -p /var/www/html/yum/OracleSoftware/x86_64/getPackage cd ~/rpmbuild/RPMS/x86_64/ scp *.rpm root@yum.arkoyd.com:/var/www/html/yum/OracleSoftware/x86_64/getPackage/.
Etape 2 – Créer les fichiers de métadonnées du référentiel
Une fois que vous aurez poussé les fichiers, créez index et métadonnées des fichiers de sorte que le YUM soit utilisable. La commande createrepo effectue cette opération pour vous :
ssh root@yum.arkoyd.com yum install createrepo cd /var/www/html/yum/OracleSoftware/x86_64/getPackage createrepo .
Note:
C’est tout ce que vous avez besoin de faire pour créer un référentiel. Le script 167283.sh qui est fourni dans l’article “How to Create a Local Yum Repository for Oracle Linux”[1] et qui explique comment faire un miroir des RPM de ULN sur un serveur local, crée, quant à lui, des fichiers headers supplémentaires. Ces fichiers sont désormais inutiles et les méta-données créées par createrepo suffisent pour utiliser YUM.
Etape 3 – Déclarer le référentiel dans vos serveurs Linux
Une fois le référentiel YUM créé avec ses méta-données, il est utilisable par n’importe quel serveur Oracle Linux 6 x86_64 qui a yum configuré et à condition qu’il puisse y accéder. Afin de déclarer le référentiel dans votre serveur, créez un fichier nommé x.repo
dans /etc/yum.repos.d
. Voici ci-dessous un exemple d’un tel fichier que vous adapterez à votre configuration :
cat /etc/yum.repos.d/internal-oracle-ol6.repo
[ol64_oracle]
name=Oracle Software for $releasever ($basearch)
baseurl=http://yum.easyteam.fr/OracleSoftware/$basearch/
gpgkey=http://yum.easyteam.fr/RPM-GPG-KEY-arkzoyd-ol6
gpgcheck=1
enabled=1
Note:
Si vous n’avez pas signé vos RPM, positionnez gpgcheck à 0.
Etape 4- Rechercher les RPMs et leurs métadonnées
Vous pouvez vérifier que vos RPMs sont mis à disposition de votre serveur avec yum
ou repoquery
:
yum info oracledb-ee-121010
Loaded plugins: security
Available Packages
Name : oracledb-ee-121010
Arch : x86_64
Version : 0.8
Release : 1.ol6
Size : 2.4 G
Repo : ol64_oracle
Summary : Oracle Database 12.1.0.1 in a RPM
URL : http://www.oracle.com
License : Commercial
Description : Oracle Database 12.1.0.1 Enterprise Edition is Oracle Flagship Database
: Server. The release included in this RPM requires you have purchased the
: appropriate License from Oracle.
Etape 5 – Installer Oracle en 1 commande
Une fois que votre client YUM pourra accéder au RPM, vous installerez facilement votre base de données ainsi que l’ensemble des dépendances associées avec la commande “yum install” ci-dessous :
yum install oracledb-ee-121010
Loaded plugins: security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracledb-ee-121010.x86_64 0:0.8-1.ol6 will be installed
--> Processing Dependency: oracle-rdbms-server-12cR1-preinstall for package: oracledb-ee-121010-0.8-1.ol6.x86_64
--> Running transaction check
---> Package oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-8.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================
Package Arch Version Repository Size
=======================================================================================
Installing:
oracledb-ee-121010 x86_64 0.8-1.ol6 ol64_oracle 2.4 G
Installing for dependencies:
oracle-rdbms-server-12cR1-preinstall x86_64 1.0-8.el6 ol64_patch 15 k
Transaction Summary
=======================================================================================
Install 2 Package(s)
Total download size: 2.4 G
Installed size: 4.7 G
Is this ok [y/N]: y
Downloading Packages:
(1/2): oracle-rdbms-server-12cR1-preinstall-1.0-8.el6.x86_64.rp | 15 kB 00:00
(2/2): oracledb-ee-121010-0.8-1.ol6.x86_64.rpm | 2.4 GB 01:41
---------------------------------------------------------------------------------------
Total 17 MB/s | 2.4 GB 01:42
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : oracle-rdbms-server-12cR1-preinstall-1.0-8.el6.x86_64 1/2
Installing : oracledb-ee-121010-0.8-1.ol6.x86_64 2/2
Verifying : oracledb-ee-121010-0.8-1.ol6.x86_64 1/2
Verifying : oracle-rdbms-server-12cR1-preinstall-1.0-8.el6.x86_64 2/2
Installed:
oracledb-ee-121010.x86_64 0:0.8-1.ol6
Dependency Installed:
oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-8.el6
Comme vous pouvez vous en rendre compte, installer un logiciel de base de données n’a jamais été aussi simple ; pour le désinstaller, utilisez simplement :
yum -y erase oracledb-ee-121010-0.8-1.ol6.x86_64 yum -y erase oracle-rdbms-server-12cR1-preinstall.x86_64 rm -rf /etc/oraInst.loc rm -rf /u01/app
Parce que ce n’est jamais vraiment terminé…
Cette méthode permet typiquement d’installer une base de données Oracle 12cR1 à partir du fichier RPM sur Oracle Linux 6 en 1’30’’ à 2’30 selon votre serveur, “relink” compris. Si on considère que le fichier final fait environ 2,5 Go, vous aurez vite compris l’intérêt d’avoir un réseau rapide entre vos serveurs et votre référentiel YUM afin d’optimiser les temps d’installation. C’est là que les proxys et les mirroirs YUM (cf reposync
[2] et la plugin Yum fastestmirror
[3]) peuvent vous aider à déplacer les fichiers aussi proches que possible de vos serveurs. La bonne nouvelle est que sur un réseau 1 Gbe ou supérieur, le temps de téléchargement peut prendre 1’ et même moins. Votre temps d’installation sera alors typiquement de moins de 4’. Un autre intérêt d’utiliser des fichiers RPMs est que vous pouvez facilement l’ajouter à vos images standard pour vos serveurs physiques ou machines virtuelles grâce à kickstart ou tout autre méthode compatible avec YUM.
Evidemment utiliser des RPM ne permet pas de répondre à l’ensemble des besoins des DBA. Vous devrez toujours provisionner le stockage, créer les bases de données, réaliser les sauvegardes, superviser les environnements, créer des utilisateurs, définir des droits, gérer les mises à jour, sécuriser les composants ou les sites pour ne citer que quelques unes des tâches des DBA. J’ai peur que ces tâches soient également mortellement ennuyeuses ! Oracle Linux et Oracle VM pourront là aussi vous aider ; et ça, c’est une autre histoire…
Bibliographie
[1] How to Create a Local Yum Repository for Oracle Linux
[2] reposync(1) – Linux man page
[3] yum-plugin-fastestmirror dans la documentation Fedora
[4] Le site web de Yellowdog Updater Modified