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:
@@ -10,11 +10,8 @@
|
|||||||
msg: "Prérequis non satisfaits : RAM >= 2GB"
|
msg: "Prérequis non satisfaits : RAM >= 2GB"
|
||||||
tags: prerequisites
|
tags: prerequisites
|
||||||
|
|
||||||
- name: Vérifier que Oracle est installé
|
- name: Inclure les validations des chemins et fichiers
|
||||||
ansible.builtin.stat:
|
ansible.builtin.include_tasks: validations.yml
|
||||||
path: "{{ oracle_home }}/bin/sqlplus"
|
|
||||||
register: oracle_installed
|
|
||||||
failed_when: not oracle_installed.stat.exists
|
|
||||||
tags: prerequisites
|
tags: prerequisites
|
||||||
|
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
|
|||||||
32
roles/oracle-db-postinstall/tasks/validations.yml
Normal file
32
roles/oracle-db-postinstall/tasks/validations.yml
Normal 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
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export ORACLE_BASE={{ oracle_base }}
|
export ORACLE_BASE={{ oracle_base }}
|
||||||
|
export SCRIPTS_DIR={{ scripts_dir }}
|
||||||
|
|
||||||
export ADMIN_DIR=${ORACLE_BASE}/admin
|
export ADMIN_DIR=${ORACLE_BASE}/admin
|
||||||
export RDBMS_LOG_DIR=${ORACLE_BASE}/diag/rdbms
|
export RDBMS_LOG_DIR=${ORACLE_BASE}/diag/rdbms
|
||||||
@@ -10,7 +11,7 @@ export LSNR_LOG_DIR=${ORACLE_BASE}/diag/tnslsnr
|
|||||||
export DAYS=3
|
export DAYS=3
|
||||||
|
|
||||||
# Fichier log pour la date du jour
|
# Fichier log pour la date du jour
|
||||||
LOG_DIR="/home/oracle/scripts/logs"
|
LOG_DIR="${SCRIPTS_DIR}/logs"
|
||||||
mkdir -p $LOG_DIR
|
mkdir -p $LOG_DIR
|
||||||
LOG_FILE="$LOG_DIR/clean_$(date +%Y%m%d).log"
|
LOG_FILE="$LOG_DIR/clean_$(date +%Y%m%d).log"
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,22 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Start Oracle Database
|
Description=Oracle Database Startup Service
|
||||||
After=multi-user.target
|
|
||||||
After=network.target
|
After=network.target
|
||||||
|
After=local-fs.target
|
||||||
|
After=remote-fs.target
|
||||||
|
Requires=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbstart {{oracle_home}}"
|
User=oracle
|
||||||
ExecStop=/usr/bin/su - oracle -c "{{oracle_home}}/bin/dbshut {{oracle_home}}"
|
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
|
TimeoutSec=900
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
|
Restart=no
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
Reference in New Issue
Block a user