# 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//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 ```