INSTALLATION ANSIBLE DIRECT SUR LA MACHINE

Prérequis

  • Systèmes d'exploitation supportés : Oracle Linux 7, 8, 9 ou 10
  • Droits root requis pour l'exécution des playbooks
  • Collections Ansible : ansible.posix (installée automatiquement par le script)

Initialisation rapide

Pour Oracle Linux 9 et 10, l'installation Ansible est légèrement différente de Linux 7 ou 8.

Méthode recommandée : Utilisez le script d'initialisation fourni :

# Télécharger et exécuter le script d'initialisation (en tant que root)
curl -fsSL https://raw.githubusercontent.com/Yacine31/oracle_19_install/main/init_oracle_install.sh | bash

# Ou si vous avez déjà cloné le repo :
cd oracle_19_install
./init_oracle_install.sh

Méthode manuelle : Si vous préférez exécuter manuellement :

#!/bin/bash

# Récupérer la version de la distribution Linux
linux_version=$(cat /etc/os-release | egrep "^VERSION_ID" | cut -d= -f2 | sed 's/"//g' | cut -d. -f1)

# Vérifier la version et exécuter les commandes appropriées
if [[ $linux_version == "7" || $linux_version == "8" ]]; then
    echo "Version Linux 7 ou 8 détectée."
    dnf install -y oracle-epel-release-el${linux_version}
    dnf install -y git ansible
    ansible-galaxy collection install ansible.posix
elif [[ $linux_version == "9" || $linux_version == "10" ]]; then
    echo "Version Oracle Linux 9 ou 10 détectée."
    dnf install -y git ansible-core
    ansible-galaxy collection install ansible.posix
else
    echo "Version Linux non prise en charge détectée."
    exit 1
fi

# cloner le repository :
echo "Récupération du scripts depuis github."
git clone https://github.com/Yacine31/oracle_19_install

Puis changer de répertoire :

cd oracle_19_install

3 playbooks à utiliser dan l'ordre :

  • oracle-db-preinstall.yml => configuration de Linux pour une installation Oracle
  • oracle-db-install.yml => installation d'Oracle 19 EE ou SE2 et ajout des scripts d'exploitation
  • oracle-db-postinstall.yml => configuration postinstall : ajout de différents scripts d'exploitation
  1. Exécution Pre- install :
# ⚠️ IMPORTANT : Configurez d'abord les mots de passe dans group_vars/all.yml
ansible-playbook -i hosts oracle-db-preinstall.yml

Parfois ansible ne fonctionne pas sans spécifier le chemin vers python3 :

ansible-playbook -i hosts oracle-db-preinstall.yml -e 'ansible_python_interpreter=/usr/bin/python3'
  1. Exécution Install : installation des binaires Oracle et patch
ansible-playbook -i hosts oracle-db-install.yml 

Configuration des variables

Toutes les variables communes sont centralisées dans group_vars/all.yml pour éviter la duplication :

# Variables communes Oracle (group_vars/all.yml)
oracle_version: "19.0.0"
oracle_base: "/u01/app/oracle"
dbhome: "dbhome_1"
oracle_home: "{{ oracle_base }}/product/{{oracle_version}}/{{ dbhome }}"
oracle_inventory: "/u01/app/oraInventory"
oracle_sources: "/u01/sources"
oracle_oradata: "/u02/oradata/"
oracle_fra: "/u03/fast_recovery_area/"

# Variables de configuration
full_configuration: true
secure_configuration: false
scripts_dir: "/home/oracle/scripts"

# Mots de passe utilisateurs système (en clair - seront hashés automatiquement)
oracle_user_password: "Oracle123"
grid_user_password: "Grid123"

# Variables spécifiques au rôle d'installation (roles/oracle-db-install/defaults/main.yml)
oracle_install_edition: "EE"               # SE2 (Standard Edition 2) ou EE
oracle_zip_filename: "Oracle_Database_19.3.0.0.0_for_Linux_x86-64.zip"

Personnalisation des variables

⚠️ Important : Configuration des mots de passe utilisateurs

Avant de lancer oracle-db-preinstall.yml, vous devez configurer les mots de passe des utilisateurs système :

# Éditer le fichier des variables
vim group_vars/all.yml

# Modifier les mots de passe (valeurs par défaut) :
oracle_user_password: "VotreMotDePasseOracle"
grid_user_password: "VotreMotDePasseGrid"

Note : Les mots de passe sont stockés en clair dans le fichier mais seront automatiquement hashés (SHA-512) lors de la création des utilisateurs.

Modification des variables communes

Pour modifier les variables communes (dans group_vars/all.yml) :

# Éditer le fichier des variables communes
vim group_vars/all.yml

# Exemple de personnalisation :
oracle_base: "/opt/oracle"
oracle_version: "19.3.0"
scripts_dir: "/home/oracle/custom_scripts"

Variables spécifiques aux rôles

Chaque rôle peut avoir ses propres variables dans roles/<role>/defaults/main.yml.

Surcharge via la ligne de commande

Pour surcharger temporairement des variables :

# Exemple pour installer SE2 au lieu d'EE
ansible-playbook -i hosts oracle-db-install.yml --extra-vars "oracle_install_edition=SE2"

# Exemple avec un oracle_base personnalisé
ansible-playbook -i hosts oracle-db-install.yml --extra-vars "oracle_base=/opt/oracle"
  1. Exécution Postinstall : copie des scripts d'exploitation
ansible-playbook -i hosts oracle-db-postinstall.yml

Structure du projet

oracle_19_install/
├── group_vars/
│   └── all.yml                    # Variables communes à tous les rôles
├── roles/
│   ├── oracle-db-preinstall/      # Configuration système pré-installation
│   │   ├── defaults/main.yml      # Variables spécifiques au rôle
│   │   ├── tasks/
│   │   │   ├── main.yml          # Tâches principales
│   │   │   ├── validations.yml   # Validations préalables
│   │   │   └── [autres fichiers...]
│   │   └── templates/            # Templates Jinja2
│   ├── oracle-db-install/         # Installation des binaires Oracle
│   └── oracle-db-postinstall/     # Configuration post-installation
│       ├── handlers/main.yml     # Gestionnaires d'événements
│       └── tasks/
│           ├── scripts.yml       # Gestion des scripts
│           ├── backup.yml        # Configuration sauvegardes
│           └── services.yml      # Services système
├── init_oracle_install.sh         # Script d'initialisation
├── hosts                          # Inventaire Ansible
├── oracle-db-*.yml               # Playbooks principaux
└── README.md                     # Cette documentation
Description
Configuration Linux et Installation Oracle 19c
Readme 715 KiB
Languages
Shell 66.7%
Jinja 33.3%