Oracle related stuff. Installs RAC/RAC One Node/Single Instance
Shell Perl
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
group_vars Updates to example configs Aug 7, 2018
host_vars Removed host_vars entries Apr 20, 2017
inventory Playbook changes May 7, 2018
library @ 222d61a updated submodule Aug 17, 2018
roles cxoracle: Made umask configurable Aug 17, 2018
.gitmodules Make sure submodule tracks master branch Jul 30, 2018
CHANGELOG.md Updated readme Jan 8, 2015
LICENSE Cleanup of example configurations Dec 11, 2014
README.md Updated readme Jul 26, 2018
aws-si-asm-install.yml aws-si-asm-install.yml - Use oradb-manage-db May 7, 2018
clean.sh Lots of changes. Added rsp stage, renamed a few parameters etc Sep 5, 2014
customize-db.yml Added oracle-manage-redo role Jun 4, 2018
db-opatch.yml Added db-opatch.yml playbook. Manages binary patches & datapatch Jul 27, 2018
delete-db.yml Playbook changes May 7, 2018
drracattack-full-install.yml add drrackattack Nov 28, 2015
full-rac-flex-install.yml Playbook changes May 7, 2018
full-rac-install-dc1.yml Changed playbooks to use oradb-manage-db role instead of oradb-create… May 6, 2018
gi-opatch.yml Added db-opatch.yml playbook. Manages binary patches & datapatch Jul 27, 2018
manage-db.yml Added manage-db.yml playbook, to quickly create/remove databases May 14, 2018
racattack-full-install.yml Changed to include orahost in app-servers as well Dec 6, 2014
single-instance-db-on-asm.yml Changed playbooks to use oradb-manage-db role instead of oradb-create… May 6, 2018
single-instance-db-on-fs.yml Added cxoracle role to single-instance-db-on-fs.yml Jul 26, 2018
vbox-rac-dc1.yml Updated submodule + add output=verbose to oradb-manage-db role Jul 28, 2018
vbox-rac-dc2.yml Changed playbooks to use oradb-manage-db role instead of oradb-create… May 6, 2018
vbox-rac-full-install.yml Changed playbooks to use oradb-manage-db role instead of oradb-create… May 6, 2018
vbox-si-asm-install.yml Updated submodule + add output=verbose to oradb-manage-db role Jul 28, 2018
vbox-si-fs-install.yml Updated submodule + add output=verbose to oradb-manage-db role Jul 28, 2018

README.md

ansible-oracle

  • Installs Oracle RAC, RAC One Node and normal single instances.
  • Start with one or more clean machine(s), end up with a fully configured RAC Cluster.

Getting started

Pre-requisites:

  • Ansible >= 2.4
  • Oracle Linux (or any RHEL-based Linux System) >= 6.4
  • Oracle Database/Grid Infrastructure 18.3.0.0, 12.2.0.1, 12.1.0.1, 12.1.0.2, 11.2.0.4, 11.2.0.3
  • For example configurations, look in:
  SI/FS:   group_vars/vbox-si-fs.  - vagrant config: http://github.com/oravirt/vagrant-vbox-si-fs
  SI/ASM:  group_vars/vbox-si-asm  - vagrant config: http://github.com/oravirt/vagrant-vbox-si-asm
  RAC/ASM: group_vars/vbox-rac-dc1 - vagrant config: http://github.com/oravirt/vagrant-vbox-rac

By default, installs a single instance 18.3.0.0 database on a filesystem.

  1. Clone this repository: git clone --recursive https://github.com/oravirt/ansible-oracle

  2. Add the following file to /tmp on the controlmachine

    • LINUX.X64_180000_db_home.zip
  3. Create an Ansible inventory file

    [myhostgroup]
     dbhost
    
  4. Run the playbook:

    ansible-playbook single-instance-db-on-fs.yml -e hostgroup=myhostgroup -i /path/to/inventory

    where the -i part is optional

Roles

A lot of these roles uses Ansible modules that comes from ansible-oracle-modules

common

This will configure stuff common to all machines

  • Install some generic packages
  • Configure ntp

orahost

This will configure the host specific Oracle stuff:

  • Add a user & group
  • Create directory structures
  • Handle filesystem storage (partition devices, creates vg/lv and a filesystem (ext4, xfs, btrfs) etc). If you want to create your database on a filesystem (instead of ASM) this is where you define the layout.
  • Install required packages
  • Change kernel paramemeters
  • Set up pam.d/limits config
  • Configures Hugepages (as a percentage of total RAM)
  • Disables transparent hugepages
  • Disables NUMA (if needed)
  • Configures the interconnect network (if needed)
  • Configures Oracle ASMLib

orahost-ssh

Configures passwordless ssh between clusternodes if setting up RAC (configure_cluster=True)

  • Uses existing ssh-keys

orahost-storage

This role configures storage that shoud be used by ASM.

  • Partitions devices (using parted)
  • Create ASMlib labels or sets up udev-rules for device name persistence

oraswgi-install

This role will install and configure Oracle Grid Infrastructure (RAC/SI)

  • Adds a .profile_grid to the oracle user
  • Sets up directory structures
  • Copies the install-files to the servers, or installs from a remote location (e.g nfs share)
  • Install Oracle Grid Infrastructure

oraasm-manage-diskgroups

This role will statefully manage the lifecycle of an ASM diskgroup

  • Uses the oracle_asmdg module
  • Create/delete diskgroup.
  • Add/remove disks
  • Manage attributes for the DG

oraswdb-install

This role will install the oracle database server(s). It is possible to run more than 1 database from each home. It performs both Single Instance/RAC installations.

  • Creates a .profile with the correct environment
  • Creates directory structures
  • Installs the database-server(s)

oradb-manage-db

This role statefully manages the lifecycle of a database

  • Uses the oracle_db module
  • Creates/deletes: state: present/absent
  • Maintains archivelog/force_logging True/False

oraswgi-manage-patches

Manage patches in a GI environment

  • Uses the oracle_opatch module
  • Manages opatchauto type of patches as well as 'normal' one-offs

oraswdb-manage-patches

Statefully manage patches in a DB environment

  • Uses the oracle_opatch module
  • Manages opatchauto type of patches as well as 'normal' one-offs

cxoracle

Installs cx_Oracle in preparation for using ansible-oracle-modules

orahost-cron

Configures cron schedules if needed

orahost-logrotate

oradb-manage-<*>

Statefully manages various aspects of the DB. They all use modules from ansible-oracle-modules

  • oradb-manage-pdb
  • oradb-manage-tablespace
  • oradb-manage-parameters
  • oradb-manage-roles
  • oradb-manage-users
  • oradb-manage-grants
  • oradb-manage-redo
  • oradb-manage-services

Deprecated roles

oraasm-createdg (use oraasm-manage-diskgroups instead)

oradb-create (use oradb-manage-db instead)

oradb-delete (use oradb-manage-db instead)

oraswgi-opatch (use oraswgi-manage-patches instead)

Note

These are the Oracle binaries that are pre-configured to be used. They have to be manually downloaded and made available (either locally, from a web endpoint or through a nfs-share)

For 18.3.0.0:

    LINUX.X64_180000_db_home.zip
    LINUX.X64_180000_grid_home.zip

For 12.2.0.1:

    linuxx64_12201_database.zip
    linuxx64_12201_grid_home.zip

For 12.1.0.2

    linuxamd64_12102_database_1of2.zip
    linuxamd64_12102_database_2of2.zip
    linuxamd64_12102_grid_1of2.zip
    linuxamd64_12102_grid_2of2.zip

For 12.1.0.1:

    linuxamd64_12c_database_1of2.zip
    linuxamd64_12c_database_2of2.zip
    linuxamd64_12c_grid_1of2.zip
    linuxamd64_12c_grid_2of2.zip

For 11.2.0.4:

    p13390677_112040_Linux-x86-64_1of7.zip
    p13390677_112040_Linux-x86-64_2of7.zip
    p13390677_112040_Linux-x86-64_3of7.zip

For 11.2.0.3:

   p10404530_112030_Linux-x86-64_1of7.zip
   p10404530_112030_Linux-x86-64_2of7.zip
   p10404530_112030_Linux-x86-64_3of7.zip