Improve oracle-db-postinstall role robustness

- Enhance systemd service template with proper User/Group/Environment settings
- Use variables in cron cleaner script instead of hardcoded paths
- Add comprehensive path validations before operations
- Create validations.yml for prerequisite checks
- Improve service dependencies and startup order
This commit is contained in:
Yacine31
2025-12-02 13:39:57 +01:00
parent f02204e026
commit d68dda1808
4 changed files with 49 additions and 11 deletions

View File

@@ -10,11 +10,8 @@
msg: "Prérequis non satisfaits : RAM >= 2GB"
tags: prerequisites
- name: Vérifier que Oracle est installé
ansible.builtin.stat:
path: "{{ oracle_home }}/bin/sqlplus"
register: oracle_installed
failed_when: not oracle_installed.stat.exists
- name: Inclure les validations des chemins et fichiers
ansible.builtin.include_tasks: validations.yml
tags: prerequisites
# ---------------------------------------------------

View File

@@ -0,0 +1,32 @@
---
#
# Validations préalables pour le rôle oracle-db-postinstall
#
- name: Vérifier que le répertoire scripts_dir existe
ansible.builtin.stat:
path: "{{ scripts_dir }}"
register: scripts_dir_check
failed_when: not scripts_dir_check.stat.exists
tags: prerequisites
- name: Vérifier que ORACLE_HOME est accessible
ansible.builtin.stat:
path: "{{ oracle_home }}"
register: oracle_home_check
failed_when: not oracle_home_check.stat.exists
tags: prerequisites
- name: Vérifier que les binaires Oracle existent
ansible.builtin.stat:
path: "{{ oracle_home }}/bin/sqlplus"
register: sqlplus_check
failed_when: not sqlplus_check.stat.exists
tags: prerequisites
- name: Vérifier que dbstart et dbshut existent
ansible.builtin.stat:
path: "{{ oracle_home }}/bin/dbstart"
register: dbstart_check
failed_when: not dbstart_check.stat.exists
tags: prerequisites

View File

@@ -1,6 +1,7 @@
#!/bin/bash
export ORACLE_BASE={{ oracle_base }}
export SCRIPTS_DIR={{ scripts_dir }}
export ADMIN_DIR=${ORACLE_BASE}/admin
export RDBMS_LOG_DIR=${ORACLE_BASE}/diag/rdbms
@@ -10,7 +11,7 @@ export LSNR_LOG_DIR=${ORACLE_BASE}/diag/tnslsnr
export DAYS=3
# Fichier log pour la date du jour
LOG_DIR="/home/oracle/scripts/logs"
LOG_DIR="${SCRIPTS_DIR}/logs"
mkdir -p $LOG_DIR
LOG_FILE="$LOG_DIR/clean_$(date +%Y%m%d).log"

View File

@@ -1,14 +1,22 @@
[Unit]
Description=Start Oracle Database
After=multi-user.target
Description=Oracle Database Startup Service
After=network.target
After=local-fs.target
After=remote-fs.target
Requires=network.target
[Service]
Type=simple
ExecStart=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbstart {{oracle_home}}"
ExecStop=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbshut {{oracle_home}}"
Type=oneshot
User=oracle
Group=oinstall
Environment=ORACLE_HOME={{ oracle_home }}
Environment=ORACLE_BASE={{ oracle_base }}
WorkingDirectory={{ oracle_base }}
ExecStart={{ oracle_home }}/bin/dbstart {{ oracle_home }}
ExecStop={{ oracle_home }}/bin/dbshut {{ oracle_home }}
TimeoutSec=900
RemainAfterExit=yes
Restart=no
[Install]
WantedBy=multi-user.target