diff --git a/README.md b/README.md index 39aa922..c16f72e 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,22 @@ - Droits root requis pour l'exécution des playbooks - Collections Ansible : `ansible.posix` (installée automatiquement par le script) -Pour Oracle Linux 9 et 10 l'installation Ansible est légèrement différente de Linux 7 ou 8. +## Initialisation rapide -Exécuter ce code en tant que root pour installer les préreuis et récupérer les books ansible : +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 @@ -36,7 +49,7 @@ echo "Récupération du scripts depuis github." git clone https://github.com/Yacine31/oracle_19_install ``` -changement de répertoire +Puis changer de répertoire : ```bash cd oracle_19_install ``` @@ -60,25 +73,91 @@ ansible-playbook -i hosts oracle-db-preinstall.yml -e 'ansible_python_interprete ansible-playbook -i hosts oracle-db-install.yml ``` -Les valeurs par défaut : -```YAML +## 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" -oracle_home: "{{ oracle_base }}/product/{{oracle_version}}/dbhome_1" +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" + +# 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" ``` -Pour l'exécuter avec des variables différentes : +## Personnalisation des variables + +### Modification des variables communes + +Pour modifier les variables communes (dans `group_vars/all.yml`) : ```bash -ansible-playbook -i hosts oracle-db-install.yml --extra-vars "oracle_install_edition=SE2 oracle_version=19c oracle_base=/opt/oracle oracle_home=/opt/oracle/product/19c/dbhome_1" +# É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 +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 ``` diff --git a/init_oracle_install.sh b/init_oracle_install.sh new file mode 100644 index 0000000..e0032b9 --- /dev/null +++ b/init_oracle_install.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# +# Script d'initialisation pour l'installation Oracle 19 avec Ansible +# Ce script installe les prérequis et clone le repository +# + +set -e # Arrêter le script en cas d'erreur + +# Couleurs pour les messages +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Fonction d'affichage des messages +log_info() { + echo -e "${BLUE}[INFO]${NC} $1" +} + +log_success() { + echo -e "${GREEN}[SUCCESS]${NC} $1" +} + +log_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" +} + +log_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# Vérification des droits root +if [[ $EUID -ne 0 ]]; then + log_error "Ce script doit être exécuté en tant que root" + exit 1 +fi + +log_info "Démarrage de l'initialisation pour Oracle 19 Installation..." + +# Récupérer la version de la distribution Linux +log_info "Détection de la version de Linux..." +linux_version=$(cat /etc/os-release | egrep "^VERSION_ID" | cut -d= -f2 | sed 's/"//g' | cut -d. -f1) + +if [[ $linux_version == "7" || $linux_version == "8" ]]; then + log_info "Version Linux $linux_version détectée - Installation pour OL7/OL8" + log_info "Installation d'oracle-epel-release-el${linux_version}..." + dnf install -y oracle-epel-release-el${linux_version} + + log_info "Installation de git et ansible..." + dnf install -y git ansible + +elif [[ $linux_version == "9" || $linux_version == "10" ]]; then + log_info "Version Oracle Linux $linux_version détectée - Installation pour OL9/OL10" + log_info "Installation de git et ansible-core..." + dnf install -y git ansible-core + +else + log_error "Version Linux $linux_version non prise en charge. Versions supportées : Oracle Linux 7, 8, 9, 10" + exit 1 +fi + +# Installation de la collection Ansible +log_info "Installation de la collection ansible.posix..." +ansible-galaxy collection install ansible.posix + +# Clonage du repository +log_info "Clonage du repository Oracle 19 Installation..." +if [[ -d "oracle_19_install" ]]; then + log_warning "Le répertoire oracle_19_install existe déjà. Suppression..." + rm -rf oracle_19_install +fi + +git clone https://github.com/Yacine31/oracle_19_install + +log_success "Initialisation terminée avec succès !" +log_info "" +log_info "Prochaines étapes :" +log_info " cd oracle_19_install" +log_info " # Puis exécuter les playbooks dans l'ordre :" +log_info " # 1. ansible-playbook -i hosts oracle-db-preinstall.yml" +log_info " # 2. ansible-playbook -i hosts oracle-db-install.yml" +log_info " # 3. ansible-playbook -i hosts oracle-db-postinstall.yml" +log_info "" +log_info "Consultez le README.md pour plus de détails." \ No newline at end of file