Ein ansible Playbook zur Installation eines Oracle Agents. Im zugehörigen ansible Inventory ist ansible_user=oracle
angegeben. Für einen produktiven Einsatz sollte allerdings das AGENT_REGISTRATION_PASSWORD
nicht im Playbook stehen. Hierfür sollte man besser Ansible Vault verwenden.
---
####################################################################################
# Playbook: ora_install_agent.yml
#
# Tasks in this playbook:
# name: Check if ORACLE_HOME directory is empty
# name: Create "{{ ORACLE_BASE }}" directory
# name: Create "{{ AGENT_TMP_INSTALL }}" directory
# name: Extract binaries to ORACLE_HOME
# name: Install Oracle EM Agent via agentDeploy.sh
# name: run root.sh as root
# name: Display root.sh output
# name: Add agent_home to oratab
#
# Date: Version Descripton
# 2024/10/14 1.0 Initial Version
#
#
# How to exec:
#
# Syntax:
# ansible-playbook playbooks/ora_install_agent.yml --limit "HOST1,HOST2"
#
# Example:
# ansible-playbook playbooks/ora_install_agent.yml --limit "oracle-srv9,oracle-srv10"
#
#
####################################################################################
- hosts: all
gather_facts: no
vars:
AGENT_SRC_FILE: /home/ansible/my_ansible/src/oracle_db/agent_install/13.5.0.0.0_AgentCore_226.zip
ORA_INSTLOC: /etc/oraInst.loc
ORACLE_INVENTORY: /u01/app/oraInventory
ORACLE_BASE: /u01/app/oracle/agent
ORACLE_HOME: "{{ ORACLE_BASE }}/agent_13.5.0.0.0"
AGENT_HOME: "{{ ORACLE_HOME }}"
AGENT_INSTANCE_HOME: "{{ ORACLE_BASE }}/agent_inst"
AGENT_TMP_INSTALL: "{{ ORACLE_BASE }}/agent_tmp"
AGENT_REGISTRATION_PASSWORD: "oracle_2024"
AGENT_PORT: 3872
OMS_HOST: oracle-srv7.example.cnh
EM_UPLOAD_PORT: 4903
tasks:
- name: Check if ORACLE_HOME directory is empty
find:
paths: "{{ ORACLE_HOME }}"
patterns: "*"
register: filesFound
failed_when: false
- fail:
msg: Directory "{{ ORACLE_HOME }}" is not empty, aborting agent installation!
when: filesFound.matched > 0
- name: Create "{{ ORACLE_BASE }}" directory
ansible.builtin.file:
dest: "{{ ORACLE_BASE }}"
state: directory
owner: oracle
group: oinstall
- name: Create "{{ AGENT_TMP_INSTALL }}" directory
ansible.builtin.file:
dest: "{{ AGENT_TMP_INSTALL }}"
state: directory
owner: oracle
group: oinstall
- name: Extract binaries to ORACLE_HOME
unarchive:
src: "{{ AGENT_SRC_FILE }}"
dest: "{{ AGENT_TMP_INSTALL }}"
owner: oracle
group: oinstall
- name: Install Oracle EM Agent via agentDeploy.sh
shell: |
export ORACLE_BASE="{{ ORACLE_BASE }}"
export ORACLE_HOME="{{ ORACLE_HOME }}"
export AGENT_HOME="{{ AGENT_HOME }}"
export AGENT_INSTANCE_HOME="{{ AGENT_INSTANCE_HOME }}"
echo "Oracle EM Agent Environment Variables Set."
"{{ AGENT_TMP_INSTALL }}"/agentDeploy.sh AGENT_BASE_DIR=$ORACLE_BASE AGENT_INSTANCE_HOME=$AGENT_INSTANCE_HOME AGENT_PORT="{{ AGENT_PORT }}" OMS_HOST="{{ OMS_HOST }}" EM_UPLOAD_PORT="{{ EM_UPLOAD_PORT }}" AGENT_REGISTRATION_PASSWORD="{{ AGENT_REGISTRATION_PASSWORD }}"
register: agentDeploy_output
- name: run root.sh as root
shell: |
export AGENT_HOME="{{ AGENT_HOME }}"
export AGENT_INSTANCE_HOME="{{ AGENT_INSTANCE_HOME }}"
"{{ AGENT_HOME }}"/root.sh
register: rootsh_output
become: true
- name: Display root.sh output
debug:
var: rootsh_output.stdout_lines
- name: Add agent_home to oratab
lineinfile:
path: /etc/oratab
line: "agent_home:{{ AGENT_HOME }}"
state: present
insertafter: EOF
become: true
tags: add_agent_home_to_oratab