2026-06-27 08:42:02

This commit is contained in:
2026-06-27 10:42:03 +02:00
parent 7784c66a17
commit 37f5b7a787
6 changed files with 123 additions and 2 deletions
@@ -0,0 +1,99 @@
---
# Playbook: ora_standalone_patch.yml
# Usage: ansible-playbook playbooks/ora_standalone_patch.yml -e "server=togoria oracle_sid=NABOOPRD opatch_zip=/mnt/yavin4/kit/Oracle/opatch/p6880880_190000_Linux-x86-64.zip dbru_zip=/mnt/yavin4/kit/Oracle/Oracle_Database_19/patch/GIRU_19.29/p38298204_190000_Linux-x86-64.zip"
- name: Gather facts for a specific inventory host
hosts: "{{ server }}"
gather_facts: yes
become: true
become_user: oracle
become_method: su
pre_tasks:
- name: Ensure 'server' variable is provided
assert:
that: server is defined
fail_msg: "Please provide the server via -e 'server=<server>'"
- name: Ensure 'oracle_sid' variable is provided
assert:
that: oracle_sid is defined
fail_msg: "Please provide the oracle_sid via -e 'oracle_sid=<oracle_sid>'"
- name: Ensure 'opatch_zip' variable is provided
assert:
that: opatch_zip is defined
fail_msg: "Please provide the opatch_zip via -e 'opatch_zip=<opatch_zip>'"
- name: Ensure 'dbru_zip' variable is provided
assert:
that: dbru_zip is defined
fail_msg: "Please provide the dbru_zip via -e 'dbru_zip=<dbru_zip>'"
tasks:
- name: Show selected system facts
debug:
msg:
hostname: "{{ (ansible_facts.nodename | default(ansible_facts.hostname)) | default('unknown') }}"
os_family: "{{ ansible_facts.os_family | default(ansible_facts.distribution | default('unknown')) }}"
operating_system: "{{ ansible_facts.distribution | default('unknown') }} {{ ansible_facts.distribution_version | default('') }}"
ip_address: "{{ ansible_default_ipv4.address | default('unknown') }}"
hardware_model: "{{ ansible_facts['machine'] | default('unknown') }}"
cpu_count: "{{ ansible_facts['processor_vcpus'] | default(ansible_facts['processor_count'] | default('unknown')) }}"
ram_gb: "{{ (ansible_facts['memtotal_mb'] / 1024) | int | default('unknown') }}"
- name: Source oraenv and display OPatch informations
shell: |
. oraenv <<< {{ oracle_sid }} && $ORACLE_HOME/OPatch/opatch version && echo && echo && $ORACLE_HOME/OPatch/opatch lspatches
register: opatch_output
when: oracle_sid is defined
- name: Display OPatch directory contents
debug:
var: opatch_output.stdout_lines
when: oracle_sid is defined
# - name: Remove /app/oracle/staging_area if present
# file:
# path: /app/oracle/staging_area
# state: absent
# - name: Recreate /app/oracle/staging_area
# file:
# path: /app/oracle/staging_area
# state: directory
# mode: '0755'
# - name: Check local zip path exists on controller (only if provided)
# stat:
# path: "{{ dbru_zip }}"
# delegate_to: localhost
# run_once: true
# register: local_zip_stat
# when: dbru_zip is defined
# - name: Fail if local zip file not found on controller
# fail:
# msg: "Local zip file {{ dbru_zip }} not found on controller"
# when: dbru_zip is defined and (local_zip_stat.stat is not defined or not local_zip_stat.stat.exists)
# run_once: true
# - name: Copy local zip file to remote staging_area
# copy:
# src: "{{ dbru_zip }}"
# dest: "/app/oracle/staging_area/{{ dbru_zip | basename }}"
# mode: '0644'
# when: dbru_zip is defined
# - name: Unarchive uploaded zip into staging_area
# unarchive:
# src: "/app/oracle/staging_area/{{ dbru_zip | basename }}"
# dest: /app/oracle/staging_area
# remote_src: yes
# when: dbru_zip is defined
# - name: Remove uploaded zip from remote staging_area
# file:
# path: "/app/oracle/staging_area/{{ dbru_zip | basename }}"
# state: absent
# when: dbru_zip is defined