338 lines
8.5 KiB
YAML
Executable File
338 lines
8.5 KiB
YAML
Executable File
- name: display pre database software install message
|
|
remote_user: "{{ root_user }}"
|
|
debug:
|
|
msg:
|
|
- 'Oracle Database Software 19.13c Installation started for Single Instance at {{ansible_date_time.iso8601}}:'
|
|
|
|
- name: "determine if directory exists"
|
|
stat:
|
|
path: "{{ oracle_home }}"
|
|
register: out
|
|
|
|
- name: Abbruch check
|
|
debug:
|
|
msg: "Abbruch, da Direchtory vorhanden auf Host {{ ansible_fqdn }}"
|
|
when: out.stat.exists == true
|
|
|
|
- name: directory exists ending play
|
|
meta: end_host
|
|
when: out.stat.exists == true
|
|
|
|
|
|
- name: Run orachk with option nordbms
|
|
expect:
|
|
command: "/opt/oracle.ahf/bin/orachk -profile preinstall -nordbms"
|
|
responses:
|
|
'(?m)^This computer is for.*': "S"
|
|
'(?m)^orachk did not find the inventory.*': "n"
|
|
timeout: null
|
|
register: orachk_output
|
|
|
|
- name: Show orachk result
|
|
debug:
|
|
msg: "{{ orachk_output.stdout_lines }}"
|
|
|
|
- name: Abbruchmeldung wenn Fehler bei orachk
|
|
debug:
|
|
msg: "Abbruch, da der Check Fehler ergeben hat"
|
|
when: orachk_output.stdout.find("FAIL") != -1
|
|
|
|
- name: Abbruch wenn Fehler bei orachk
|
|
meta: end_host
|
|
when: orachk_output.stdout.find("FAIL") != -1
|
|
|
|
- name: Ensure free space on disk is more than 7.2 GB
|
|
assert:
|
|
that: item.size_available > 7200000000
|
|
msg: "warning: disk space is low"
|
|
when: item.mount == mount_directory
|
|
with_items: "{{ ansible_mounts }}"
|
|
no_log: true
|
|
|
|
- debug:
|
|
msg: "checking resource limits"
|
|
|
|
#- name: copy limits.conf to /etc/security/limits.conf
|
|
# become_user: root
|
|
# become: yes
|
|
# copy:
|
|
# src: limits.conf
|
|
# dest: /etc/security/limits.conf
|
|
# owner: root
|
|
# group: root
|
|
# mode: 0644
|
|
#
|
|
#- name: Upgrade all packages
|
|
# become_user: root
|
|
# become: yes
|
|
# yum:
|
|
# name: '*'
|
|
# state: latest
|
|
#
|
|
#- name: Install the latest version of necessary software
|
|
# become_user: root
|
|
# become: yes
|
|
# yum:
|
|
# name: "{{ packages }}"
|
|
# vars:
|
|
# packages:
|
|
# - centos-release-ansible-29.noarch
|
|
# - compat-libcap1-1.10
|
|
# - libstdc++-devel.x86_64
|
|
# - gcc-c++.x86_64
|
|
# - ksh
|
|
# - libaio-devel-0.3.109
|
|
# - compat-libstdc++-33-3.2.3
|
|
# state: latest
|
|
# tags: install_software
|
|
#
|
|
#
|
|
- name: check file descriptor soft limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -Sn
|
|
register: limits
|
|
|
|
- name: check soft limit stdout
|
|
fail:
|
|
msg: "warning: file descriptor soft limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 1024
|
|
|
|
- name: check file descriptor hard limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -Hn
|
|
register: limits
|
|
|
|
- name: ---
|
|
fail:
|
|
msg: "warning: file descriptor hard limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 65536
|
|
|
|
- name: check available processes soft limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -Sn
|
|
register: limits
|
|
|
|
- name: ---
|
|
fail:
|
|
msg: "warning: available processes soft limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 2047
|
|
|
|
- name: check available processes hard limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -H -n
|
|
args:
|
|
executable: /bin/bash
|
|
register: limits
|
|
|
|
- name: ---
|
|
fail:
|
|
msg: "warning: available processes hard limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 16384
|
|
|
|
- name: check stack segment soft limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -Ss
|
|
register: limits
|
|
|
|
- name: ---
|
|
fail:
|
|
msg: "warning: stack segment soft limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 10240
|
|
|
|
- name: check stack segment hard limit
|
|
become_user: oracle
|
|
become: true
|
|
shell:
|
|
cmd: ulimit -Hs
|
|
register: limits
|
|
|
|
- name: ---
|
|
fail:
|
|
msg: "warning: stack segment hard limit is {{ limits.stdout }}"
|
|
ignore_errors: yes
|
|
when: limits.stdout | int < 10240 or limits.stdout | int > 32768
|
|
|
|
#- name: Ensure group "oinstall" exists
|
|
# become_user: root
|
|
# become: yes
|
|
# group:
|
|
# name: oinstall
|
|
# state: present
|
|
#
|
|
#- name: Ensure group "oper" exists
|
|
# become_user: root
|
|
# become: yes
|
|
# group:
|
|
# name: oper
|
|
# state: present
|
|
# system: yes
|
|
#
|
|
#
|
|
- name: Ensure group "dba" exists
|
|
become_user: root
|
|
become: yes
|
|
group:
|
|
name: dba
|
|
state: present
|
|
system: yes
|
|
|
|
#
|
|
#- name: create user with group oinstall and dba
|
|
# become_user: root
|
|
# become: yes
|
|
# user:
|
|
# name: oracle
|
|
# group: oinstall
|
|
# groups: dba, oper
|
|
|
|
- name: create required directories
|
|
when: inventory_hostname in groups['dbservers']
|
|
#remote_user: "{{ root_user }}"
|
|
become_user: root
|
|
become: yes
|
|
file:
|
|
path="{{ item }}"
|
|
state=directory
|
|
owner="{{ oracle_user }}"
|
|
group="{{ oracle_install_group }}"
|
|
mode=0775
|
|
with_items:
|
|
# - "{{ root_directory }}"
|
|
# - "{{ scripts_directory }}"
|
|
- "{{ oracle_inventory }}"
|
|
- "{{ oracle_base }}"
|
|
# - "{{ stage_dir }}"
|
|
- "{{ oracle_home }}"
|
|
tags:
|
|
- db19c_createinventory
|
|
#
|
|
#- name: Copy preinstall-19c package to target database server
|
|
# when: inventory_hostname in groups['dbservers']
|
|
# become_user: root
|
|
# become: yes
|
|
# copy: src=roles/dbsoftware19c_install/files/{{ item }}
|
|
# dest: {{ stage_dir }}
|
|
# mode: 0755
|
|
# owner: "{{ oracle_user }}"
|
|
# group: "{{ oracle_install_group }}"
|
|
# with_items:
|
|
# - oracle-database-preinstall-19c-1.0-1.el7.src.rpm
|
|
# tags:
|
|
# - db19c_preinstpkg
|
|
#
|
|
#- name: Execute rpm package
|
|
# when: inventory_hostname in groups['dbservers']
|
|
# become_user: "{{ root_user }}"
|
|
# become: yes
|
|
# command: rpm -U "/{{ stage_dir }}/{{ preinstall_pkg }}"
|
|
# args:
|
|
# warn: false
|
|
# register: db19c_prerpm_install
|
|
# tags:
|
|
# - db19c_preinstpkg
|
|
#
|
|
#- name: Download Oracle 19c archive from server
|
|
# #get_url:
|
|
# #url: "{{ oracle19c_url }}"
|
|
# #dest: "{{ stage_dir }}/LINUX.X64_193000_db_home.zip"
|
|
# #mode: '0775'
|
|
# #tags:
|
|
# #- download_oracle19c
|
|
#
|
|
#- name: copy {{ goldimagepath }}/{{ goldimagename}} to {{ oracle_home }}
|
|
# when: inventory_hostname in groups['dbservers']
|
|
# become_user: "{{ root_user }}"
|
|
# become: yes
|
|
# copy:
|
|
# src: "{{ goldimagepath }}/{{ goldimagename }}"
|
|
# dest: "{{ oracle_home }}/{{ goldimagename }}"
|
|
# remote_src: yes
|
|
# group: "{{ oracle_install_group }}"
|
|
# owner: "{{ oracle_user }}"
|
|
|
|
- name: Unpack Oracle 19c Database Software to the target server
|
|
when: inventory_hostname in groups['dbservers']
|
|
become_user: "{{ root_user }}"
|
|
become: yes
|
|
#become_user: "{{ oracle_user }}"
|
|
unarchive:
|
|
src={{ goldimagepath }}/{{ goldimagename }}
|
|
dest="{{ oracle_home }}"
|
|
remote_src=yes
|
|
mode=0775
|
|
group="{{ oracle_install_group }}"
|
|
owner="{{ oracle_user }}"
|
|
tags:
|
|
- db19c_unpackdbsoftware
|
|
|
|
- name: Setup Oracle 19c Database Software silent response file
|
|
when: inventory_hostname in groups['dbservers']
|
|
#remote_user: "{{ root_user }}"
|
|
become: yes
|
|
become_user: "{{ oracle_user }}"
|
|
template: src=roles/db1913/templates/{{ oradbsoft_rsp }}.rsp.j2 dest=/tmp/{{ oradbsoft_rsp }}.rsp mode=0755
|
|
tags:
|
|
- db19c_setuprspfile
|
|
|
|
- name: Install Oracle 19c Database Software
|
|
when: inventory_hostname in groups['dbservers']
|
|
#remote_user: "{{ root_user }}"
|
|
become: yes
|
|
become_user: "{{ oracle_user }}"
|
|
shell: "{{ oracle_home }}/runInstaller -silent -responseFile /tmp/{{ oradbsoft_rsp }}.rsp -ignorePrereq -noconfig -force"
|
|
#ignore_errors: True
|
|
tags:
|
|
- dbsoft19c_install
|
|
|
|
- name: Execute orainstroot.sh
|
|
become_user: root
|
|
become: yes
|
|
when: inventory_hostname in groups['dbservers']
|
|
#remote_user: "{{ root_user }}"
|
|
shell: "{{ oracle_inventory }}/orainstRoot.sh"
|
|
#teilweise ist das oraInventory vorhanden, daher ignore_errors
|
|
ignore_errors: True
|
|
tags:
|
|
- db19c_exeorainstroot
|
|
|
|
- name: Execute root.sh
|
|
become_user: root
|
|
become: yes
|
|
when: inventory_hostname in groups['dbservers']
|
|
#remote_user: "{{ root_user }}"
|
|
shell: "{{ oracle_home }}/root.sh -silent"
|
|
tags:
|
|
- db19c_exeroot
|
|
|
|
- name: Remove response file
|
|
become_user: root
|
|
become: yes
|
|
when: inventory_hostname in groups['dbservers']
|
|
file: path=/tmp/{{ oradbsoft_rsp }}.rsp state=absent
|
|
|
|
- name: display post install message
|
|
debug:
|
|
msg:
|
|
- 'This Steps completed below task for Single Instance at {{ansible_date_time.iso8601}}:'
|
|
- '- Install Single Instance Oracle Database Software'
|
|
- 'Next Steps left to do:'
|
|
- '- Create SI empty Container Database on server ora-x1'
|
|
- '- Create SI Pluggable Database on server ora-x1'
|
|
- '- Deinstall Single Instance Oracle Database Software'
|
|
- '- END OF ALL: git clone of OracleDBAwithAnsible repository will be shared'
|