Modularize oracle-db-postinstall role tasks
- Split main.yml into modular files: scripts.yml, backup.yml, services.yml - Use include_tasks for better organization and maintainability - Group related tasks by functionality - Improve code readability and reusability
This commit is contained in:
59
roles/oracle-db-postinstall/tasks/backup.yml
Normal file
59
roles/oracle-db-postinstall/tasks/backup.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
#
|
||||
# Configuration des sauvegardes automatiques Oracle
|
||||
#
|
||||
|
||||
- name: Création du répertoire de sauvegarde /u04
|
||||
ansible.builtin.file:
|
||||
dest: /u04
|
||||
mode: '0775'
|
||||
owner: oracle
|
||||
group: oinstall
|
||||
state: directory
|
||||
recurse: yes
|
||||
tags: backup
|
||||
|
||||
- name: Installation des packages mutt et curl pour les emails
|
||||
ansible.builtin.package:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop:
|
||||
- mutt
|
||||
- curl
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron RMAN
|
||||
ansible.builtin.cron:
|
||||
name: "Backup RMAN des bases ouvertes et en AL"
|
||||
user: oracle
|
||||
minute: "44"
|
||||
hour: "23"
|
||||
job: "sh {{ scripts_dir }}/backup_rman_alldb.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron Datapump
|
||||
ansible.builtin.cron:
|
||||
name: "Export Datapump des bases ouvertes"
|
||||
user: oracle
|
||||
minute: "44"
|
||||
hour: "21"
|
||||
job: "sh {{ scripts_dir }}/export_datapump_alldb.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron backup des binaires
|
||||
ansible.builtin.cron:
|
||||
name: "Backup des binaires"
|
||||
user: oracle
|
||||
minute: "44"
|
||||
hour: "20"
|
||||
day: "1"
|
||||
job: "sh {{ scripts_dir }}/backup_bin.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron backup des AL si FRA >= seuil
|
||||
ansible.builtin.cron:
|
||||
name: "Backup des AL si FRA >= seuil définit"
|
||||
user: oracle
|
||||
minute: "*/10"
|
||||
job: "sh {{ scripts_dir }}/backup_rman_AL_fct_FRA_Usage.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
@@ -1,123 +1,39 @@
|
||||
---
|
||||
---
|
||||
#
|
||||
# post configuration d'une installation de base de données Oracle
|
||||
#
|
||||
|
||||
- name: Vérifier les prérequis pour la post-installation
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_memtotal_mb >= 2048
|
||||
msg: "Prérequis non satisfaits : RAM >= 2GB"
|
||||
tags: prerequisites
|
||||
- name: Vérifier les prérequis pour la post-installation
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_memtotal_mb >= 2048
|
||||
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
|
||||
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
|
||||
tags: prerequisites
|
||||
|
||||
# ---------------------------------------------------
|
||||
# récupération des scripts sql
|
||||
# ---------------------------------------------------
|
||||
- name: Gérer le repository des scripts SQL
|
||||
ansible.builtin.git:
|
||||
repo: https://github.com/Yacine31/sql.git
|
||||
dest: "{{ scripts_dir }}"
|
||||
update: yes
|
||||
force: yes
|
||||
become: true
|
||||
become_method: su
|
||||
become_user: oracle
|
||||
register: git_result
|
||||
failed_when: git_result.failed and 'already exists' not in git_result.msg
|
||||
tags: scripts
|
||||
# ---------------------------------------------------
|
||||
# Gestion des scripts SQL
|
||||
# ---------------------------------------------------
|
||||
- name: Inclure les tâches de gestion des scripts
|
||||
ansible.builtin.include_tasks: scripts.yml
|
||||
tags: scripts
|
||||
|
||||
# ---------------------------------------------------
|
||||
# changement du propriétaire de root en oracle
|
||||
# ---------------------------------------------------
|
||||
- name: Changement du propriétaire
|
||||
ansible.builtin.file:
|
||||
dest: "{{ scripts_dir }}"
|
||||
owner: oracle
|
||||
group: oinstall
|
||||
recurse: yes
|
||||
# ---------------------------------------------------
|
||||
# Configuration des sauvegardes automatiques
|
||||
# ---------------------------------------------------
|
||||
- name: Inclure les tâches de configuration des sauvegardes
|
||||
ansible.builtin.include_tasks: backup.yml
|
||||
tags: backup
|
||||
|
||||
# ---------------------------------------------------
|
||||
# Ajout de la variabe ORACLE_PATH ans .bash_profile
|
||||
# ---------------------------------------------------
|
||||
- name: Ajout de la variabe ORACLE_PATH ans .bash_profile
|
||||
ansible.builtin.lineinfile: path=/home/oracle/.bash_profile line="export ORACLE_PATH={{ scripts_dir }}" create=yes
|
||||
tags: oraclepath
|
||||
|
||||
# ---------------------------------------------------
|
||||
# ajout de script oracle pour les backups rman
|
||||
# ---------------------------------------------------
|
||||
|
||||
- name: Création de répertoire de sauvegarde RMAN et Datapump /u04
|
||||
ansible.builtin.file: dest=/u04 mode=775 owner=oracle group=oinstall state=directory recurse=yes
|
||||
tags: backup
|
||||
|
||||
- name: installation du package mutt et curl pour envoyer des mails depuis le shell
|
||||
ansible.builtin.package:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop:
|
||||
- mutt
|
||||
- curl
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron RMAN
|
||||
ansible.builtin.cron: name="Backup RMAN des bases ouvertes et en AL" user=oracle minute="44" hour="23" job="sh {{ scripts_dir }}/backup_rman_alldb.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron Datapump
|
||||
ansible.builtin.cron: name="Export Datapump des bases ouvertes" user=oracle minute="44" hour="21" job="sh {{ scripts_dir }}/export_datapump_alldb.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron backup des binaires
|
||||
ansible.builtin.cron: name="Backup des binaires" user=oracle minute="44" hour="20" day="1" job="sh {{ scripts_dir }}/backup_bin.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
- name: Ajout de la tâche cron backup des AL si FRA >= seuil définit
|
||||
ansible.builtin.cron: name="Backup des AL si FRA >= seuil définit" user=oracle minute="*/10" job="sh {{ scripts_dir }}/backup_rman_AL_fct_FRA_Usage.sh 2>&1 1>/dev/null"
|
||||
tags: backup
|
||||
|
||||
# ---------------------------------------------------
|
||||
# configuration Linux : config oracle pour logrotate
|
||||
# Gestion des fichiers logs seulement (archivage et réinitialisation)
|
||||
# ---------------------------------------------------
|
||||
- name: Gestion des logs Oracle - copie du fichier de configuration pour logrotate
|
||||
ansible.builtin.template: src=logrotate_oracle.j2 dest=/etc/logrotate.d/oracle mode=644 owner=root group=root
|
||||
tags: logrotate
|
||||
|
||||
# ---------------------------------------------------
|
||||
# configuration Linux : oracle cleaner dans le cron de l'utilisateur oracle
|
||||
# Gestion des fichiers trace et xml : purge des anciens fichiers
|
||||
# ---------------------------------------------------
|
||||
- name: Netoyage ADR Oracle - copie du fichier de configuration pour cron
|
||||
ansible.builtin.template: src=cron_oracle_cleaner.j2 dest={{ scripts_dir }}/oracle_cleaner.sh mode=755 owner=oracle group=oinstall
|
||||
tags: oracle_cleaner
|
||||
|
||||
# ajout du script dans le crontab de l'utilisateur oracle
|
||||
- name: Ajout de la tâche cron purge des fichiers trace et audit
|
||||
ansible.builtin.cron: name="Purge des fichiers trace et audit" user=oracle minute="23" hour="23" day="1" job="sh {{ scripts_dir }}/oracle_cleaner.sh 2>&1 1>/dev/null"
|
||||
tags: oracle_cleaner
|
||||
|
||||
# suppression de l'ancien fichier qui se trouve dans /etc/cron.daily si il existe
|
||||
- name: suppression du fichier /etc/cron.daily/oracle_cleaner si il existe
|
||||
ansible.builtin.file: path=/etc/cron.daily/oracle_cleaner state=absent
|
||||
tags: oracle_cleaner
|
||||
# ---------------------------------------------------
|
||||
# copy du fichier dbora.service dans /lib/systemd/system pour redémmarage auto
|
||||
# ---------------------------------------------------
|
||||
- name: Copie du script de démarrage auto des bases Oracle
|
||||
ansible.builtin.template: src=dbora.service.j2 dest=/lib/systemd/system/dbora.service owner=root mode=644
|
||||
tags: dbora_init
|
||||
|
||||
- name: Activation par systemctl du script de démarrage auto des bases Oracle
|
||||
ansible.builtin.systemd: name=dbora daemon_reload=yes enabled=yes
|
||||
tags: dbora_init
|
||||
|
||||
- debug: msg="Pensez à mettre Y au lieu de N dans /etc/oratab pour les bases à démarreage automatique"
|
||||
# ---------------------------------------------------
|
||||
# Configuration des services système et cron
|
||||
# ---------------------------------------------------
|
||||
- name: Inclure les tâches de configuration des services
|
||||
ansible.builtin.include_tasks: services.yml
|
||||
tags: [dbora_init, oracle_cleaner, logrotate]
|
||||
|
||||
32
roles/oracle-db-postinstall/tasks/scripts.yml
Normal file
32
roles/oracle-db-postinstall/tasks/scripts.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
#
|
||||
# Gestion des scripts SQL pour Oracle
|
||||
#
|
||||
|
||||
- name: Gérer le repository des scripts SQL
|
||||
ansible.builtin.git:
|
||||
repo: https://github.com/Yacine31/sql.git
|
||||
dest: "{{ scripts_dir }}"
|
||||
update: yes
|
||||
force: yes
|
||||
become: true
|
||||
become_method: su
|
||||
become_user: oracle
|
||||
register: git_result
|
||||
failed_when: git_result.failed and 'already exists' not in git_result.msg
|
||||
tags: scripts
|
||||
|
||||
- name: Changement du propriétaire des scripts
|
||||
ansible.builtin.file:
|
||||
dest: "{{ scripts_dir }}"
|
||||
owner: oracle
|
||||
group: oinstall
|
||||
recurse: yes
|
||||
tags: scripts
|
||||
|
||||
- name: Ajout de la variable ORACLE_PATH dans .bash_profile
|
||||
ansible.builtin.lineinfile:
|
||||
path: /home/oracle/.bash_profile
|
||||
line: "export ORACLE_PATH={{ scripts_dir }}"
|
||||
create: yes
|
||||
tags: oraclepath
|
||||
58
roles/oracle-db-postinstall/tasks/services.yml
Normal file
58
roles/oracle-db-postinstall/tasks/services.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
#
|
||||
# Configuration des services système et tâches cron
|
||||
#
|
||||
|
||||
- name: Copie du script de démarrage automatique des bases Oracle
|
||||
ansible.builtin.template:
|
||||
src: dbora.service.j2
|
||||
dest: /lib/systemd/system/dbora.service
|
||||
owner: root
|
||||
mode: '0644'
|
||||
tags: dbora_init
|
||||
|
||||
- name: Activation du service de démarrage automatique
|
||||
ansible.builtin.systemd:
|
||||
name: dbora
|
||||
daemon_reload: yes
|
||||
enabled: yes
|
||||
tags: dbora_init
|
||||
|
||||
- name: Copie du script de nettoyage ADR Oracle
|
||||
ansible.builtin.template:
|
||||
src: cron_oracle_cleaner.j2
|
||||
dest: "{{ scripts_dir }}/oracle_cleaner.sh"
|
||||
owner: oracle
|
||||
group: oinstall
|
||||
mode: '0755'
|
||||
tags: oracle_cleaner
|
||||
|
||||
- name: Ajout de la tâche cron de nettoyage des logs
|
||||
ansible.builtin.cron:
|
||||
name: "Purge des fichiers trace et audit"
|
||||
user: oracle
|
||||
minute: "23"
|
||||
hour: "23"
|
||||
day: "1"
|
||||
job: "sh {{ scripts_dir }}/oracle_cleaner.sh 2>&1 1>/dev/null"
|
||||
tags: oracle_cleaner
|
||||
|
||||
- name: Suppression de l'ancien fichier cron si existant
|
||||
ansible.builtin.file:
|
||||
path: /etc/cron.daily/oracle_cleaner
|
||||
state: absent
|
||||
tags: oracle_cleaner
|
||||
|
||||
- name: Copie de la configuration logrotate pour Oracle
|
||||
ansible.builtin.template:
|
||||
src: logrotate_oracle.j2
|
||||
dest: /etc/logrotate.d/oracle
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
tags: logrotate
|
||||
|
||||
- name: Message de rappel pour la configuration oratab
|
||||
ansible.builtin.debug:
|
||||
msg: "Pensez à mettre Y au lieu de N dans /etc/oratab pour les bases à démarrage automatique"
|
||||
tags: dbora_init
|
||||
Reference in New Issue
Block a user