- 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/ahf/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" #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'