ministryofjustice / hmpps-delius-core-oracledb-installer

hmpps-delius-core-oracledb-installer
1 stars 1 forks source link

Role Name

Role to install oracledb onto a centos ami.

Role Variables


system:
  packages:
    - required
    - system
    - packages

install_jdk: false # Oracle has its own JDK in the installer packages

system_groups:
  - group: "{{ system_users.0.group }}"
    gid: "{{ system_users.0.gid }}"
  - group: dba
    gid: 54322
  - group: oper
    gid: 54323

system_users:
  - name: oracle
    uid: 1200
    group: oinstall
    groups: "oinstall, dba, oper"
    gid: 54321
    profile: |
      alias ll='ls -lah'
      alias cp='cp -iv'

      export ORACLE_HOSTNAME=localhost
      export ORACLE_UNQNAME={{ database_global_database_name }}
      export ORACLE_BASE={{ oracle_database_oracle_base }}
      export ORACLE_HOME={{ oracle_database_oracle_home }}
      export ORACLE_SID={{ database_sid }}
      export ORACLE_TERM=xterm
      export PATH=/usr/sbin:/usr/local/bin:$PATH
      export PATH=$ORACLE_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
      export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

      if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
          ulimit -p 16384
          ulimit -n 65536
        else
          ulimit -u 16384 -n 65536
        fi
      fi

mount_point: "/u01" # The mount point for our volume
device_name: "/dev/xvdb" # HVM volume so sdb maps to xvdb
mount_owner: "{{ system_users.0.name }}"
mount_group: "{{ system_users.0.group }}"

# installation variables
oracle_database_version: 11g # supported versions: [11g]
oracle_database_edition: EE # supported editions: [SE,EE]

database_selected_languages: "en,en_GB"
database_characterset: "AL32UTF8"
database_global_database_name: "example_db"
database_sid: "example_db"
database_memorylimit: "1000"

# installers
oracle_database_installer_directory: "{{ mount_point }}/software/11gR/database"
oracle_grid_installer_directory: "{{ mount_point }}/software/11gR/grid"
oracle_patch_installer_directory: "{{ mount_point }}/software/11gR/patches"
oracle_osbws_installer_directory: "{{ mount_point }}/software/11gR/osbws"
oracle_database_response_file: "db"
oracle_grid_response_file: "grid"

# oracle-database
oracle_database_inventory_location: "{{ mount_point }}/app/oraInventory"
oracle_database_oracle_base: "{{ mount_point }}/app/oracle"
#The path below has the version hardcoded we need to change this
oracle_database_oracle_home: "{{ oracle_database_oracle_base }}/product/11.2.0.4/db"
oracle_database_datalocation: "{{ oracle_database_oracle_base }}/oradata"
oracle_grid_oracle_base: "{{ mount_point }}/app/grid"
oracle_grid_oracle_home: "{{ oracle_grid_oracle_base }}/product/11.2.0.4/grid"

oracle_database_kernel_params:
# Shared memory and semaphore
# look for document 226209.1 in oracle support for details
kernel.sem: 250 32000 100 128
kernel.shmmni: 4096
# 1.5 GB Shared memory 500mb for linux kernel (for 2GB virtual machine)
kernel.shmall: 393216
# 1 GB Half of the physical memory (for 2GB virtual machine)
kernel.shmmax: 4398046511104
# For 1Gbps with 1ms latency 16MB buffer
net.core.rmem_max: 16777216
net.core.wmem_max: 16777216
net.ipv4.tcp_rmem: 4096 87380 16777216
net.ipv4.tcp_wmem: 4096 65536 16777216
# Minimize swap file use
vm.swappiness: 10
vm.dirty_background_ratio: 5
vm.dirty_ratio: 10
# Max open file descriptors 512 * db processes + room for os
fs.file-max: 409600
# Shorten keep alive of connections
net.ipv4.tcp_keepalive_time: 300
net.ipv4.tcp_keepalive_intvl: 60
net.ipv4.tcp_keepalive_probes: 10
# maximize port range
net.ipv4.ip_local_port_range: 9000 65500

# Oracle user limits
oracle_database_limits_soft_no_file: 4096
oracle_database_limits_hard_no_file: 65536
oracle_database_limits_soft_nproc: 2047
oracle_database_limits_hard_nproc: 16384
oracle_database_limits_soft_stack: 10240
oracle_database_limits_hard_stack: 32768
# mem lock 90% of RAM
oracle_database_limits_soft_memlock: 1887437
oracle_database_limits_hard_memlock: 1887437

artefact_path: "delius-core/oracle/rdbms"
oracledb_artefacts:
  - name: 'archive-1.zip'
  - name: 'archive-n.zip'

oracledb_patches:
  - name: 'patch-1.zip'
  - name: 'patch-n.zip'

oracledb_rpms:
  - name: 'oracleasm-support-2.1.11-2.el7.x86_64.rpm'
  - name: 'oracleasmlib-2.0.12-1.el7.x86_64.rpm'

oracledb_osbws:
  - name: 'osbws_install_12.2.0.1.0.jar'

Dependencies

Example Playbook

Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:

- hosts: servers
  roles:
     - { role: hmpps-delius-core-oracledb-installer, wl_artefact_bucket: "{{ ansible_env.ARTIFACT_S3_BUCKET }}" }

Bootstrap tasks

Before starting the services

License

MIT

Author Information

An optional section for the role authors to include contact information, or a website (HTML is not allowed).