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"
|
||||
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
|
||||
|
||||
# ---------------------------------------------------
|
||||
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user