- Document user passwords in group_vars/all.yml section - Add important warning about configuring passwords before preinstall - Include clear instructions for password customization - Explain automatic hashing behavior
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
- 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'
- 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"
- 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