Files
oracle_19_install/README.md
Yacine31 4f767067a0 Add password configuration documentation to README
- 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
2025-12-02 17:12:28 +01:00

184 lines
6.3 KiB
Markdown

# 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 :
```bash
# 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 :
```bash
#!/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 :
```bash
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 :
```bash
# ⚠️ 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 :
```bash
ansible-playbook -i hosts oracle-db-preinstall.yml -e 'ansible_python_interpreter=/usr/bin/python3'
```
2. Exécution Install : installation des binaires Oracle et patch
```bash
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 :
```yaml
# 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 :**
```bash
# É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`) :
```bash
# É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 :
```bash
# 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"
```
3. Exécution Postinstall : copie des scripts d'exploitation
```bash
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
```