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
|
# post configuration d'une installation de base de données Oracle
|
||||||
#
|
#
|
||||||
|
|
||||||
- name: Vérifier les prérequis pour la post-installation
|
- name: Vérifier les prérequis pour la post-installation
|
||||||
ansible.builtin.assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- ansible_memtotal_mb >= 2048
|
- ansible_memtotal_mb >= 2048
|
||||||
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: Vérifier que Oracle est installé
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ oracle_home }}/bin/sqlplus"
|
path: "{{ oracle_home }}/bin/sqlplus"
|
||||||
register: oracle_installed
|
register: oracle_installed
|
||||||
failed_when: not oracle_installed.stat.exists
|
failed_when: not oracle_installed.stat.exists
|
||||||
tags: prerequisites
|
tags: prerequisites
|
||||||
|
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
# récupération des scripts sql
|
# Gestion des scripts SQL
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
- name: Gérer le repository des scripts SQL
|
- name: Inclure les tâches de gestion des scripts
|
||||||
ansible.builtin.git:
|
ansible.builtin.include_tasks: scripts.yml
|
||||||
repo: https://github.com/Yacine31/sql.git
|
tags: scripts
|
||||||
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
|
|
||||||
|
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
# changement du propriétaire de root en oracle
|
# Configuration des sauvegardes automatiques
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
- name: Changement du propriétaire
|
- name: Inclure les tâches de configuration des sauvegardes
|
||||||
ansible.builtin.file:
|
ansible.builtin.include_tasks: backup.yml
|
||||||
dest: "{{ scripts_dir }}"
|
tags: backup
|
||||||
owner: oracle
|
|
||||||
group: oinstall
|
|
||||||
recurse: yes
|
|
||||||
|
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
# Ajout de la variabe ORACLE_PATH ans .bash_profile
|
# Configuration des services système et cron
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
- name: Ajout de la variabe ORACLE_PATH ans .bash_profile
|
- name: Inclure les tâches de configuration des services
|
||||||
ansible.builtin.lineinfile: path=/home/oracle/.bash_profile line="export ORACLE_PATH={{ scripts_dir }}" create=yes
|
ansible.builtin.include_tasks: services.yml
|
||||||
tags: oraclepath
|
tags: [dbora_init, oracle_cleaner, logrotate]
|
||||||
|
|
||||||
# ---------------------------------------------------
|
|
||||||
# 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"
|
|
||||||
|
|||||||
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