diff --git a/roles/oracle-db-postinstall/tasks/main.yml b/roles/oracle-db-postinstall/tasks/main.yml index 1b32261..ecebe41 100644 --- a/roles/oracle-db-postinstall/tasks/main.yml +++ b/roles/oracle-db-postinstall/tasks/main.yml @@ -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 # --------------------------------------------------- diff --git a/roles/oracle-db-postinstall/tasks/validations.yml b/roles/oracle-db-postinstall/tasks/validations.yml new file mode 100644 index 0000000..ac834c4 --- /dev/null +++ b/roles/oracle-db-postinstall/tasks/validations.yml @@ -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 \ No newline at end of file diff --git a/roles/oracle-db-postinstall/templates/cron_oracle_cleaner.j2 b/roles/oracle-db-postinstall/templates/cron_oracle_cleaner.j2 index 58f5ab3..dcd5a0d 100644 --- a/roles/oracle-db-postinstall/templates/cron_oracle_cleaner.j2 +++ b/roles/oracle-db-postinstall/templates/cron_oracle_cleaner.j2 @@ -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" diff --git a/roles/oracle-db-postinstall/templates/dbora.service.j2 b/roles/oracle-db-postinstall/templates/dbora.service.j2 index c652384..f50aa08 100644 --- a/roles/oracle-db-postinstall/templates/dbora.service.j2 +++ b/roles/oracle-db-postinstall/templates/dbora.service.j2 @@ -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