####Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with oracle_webgate
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
##Overview
This puppet module will install and configure Oracle Access Manager Webgate for Apache on Linux.
##Module Description
Oracle Access Manager Webgate has a really crappy installation process, this module automates the installation and configuration process. This is what it does:
- Download the installation package from a remore repository (http/https)
- Create a temp dir where to extract the required content
- Ensure the necessary dependencies are installed
- Copy the system libs requirered by the install (please refer to: http://docs.oracle.com/cd/E15217_01/doc.1014/e12493.pdf)
- Copy the OAM certificates
- Run the installa process
- Run the configuration process
##Setup
###What oracle_webgate affects Notes:
- The (crappy) Oracle installer requires a copy of libgcc_s.so.1andlibstdc++.so.6in a specified directory to work properly. The module will take care of copying those files if they are available
- The software will be installed in the default installation path, i.e. /opt/netpoint/access, this cannot be changed
- This module will install libstc++.i686andlibstc++.x86_64on 64 bit systems. Puppet might fail because of multilib if alibstc++.i686version newer than thelibstc++.x86_64already installed is available (see https://projects.puppetlabs.com/issues/23245)
###Setup Requirements
Before you start, you need:
- a working OAM server
- OAM Certificates copied either on your puppet server on available in hiera
- OAM Webgate installation ZIP file available on a http/https repository
###Beginning with oracle_webgate
The very basic steps needed for a user to get the module up and running.
  class { 'oracle_webgate':
    serverId        => 'oamServerId',
    hostname        => 'oam.example.com',
    webgateId       => 'thisServer',
    port            => '5575',
    password        => 'password',
    passphrase      => 'passphrase',
    remoteRepo      => 'https://www.example.com/repo/oracle',
    installPackage  => 'Oracle_Access_Manager10_1_4_3_0_linux64_APACHE24_WebGate.zip',
  }
This is a full example with bundle patch for Apache 2.2.
  class { 'oracle_webgate':
    serverId        => 'oamServerId',
    hostname        => 'oam.example.com',
    webgateId       => 'thisServer',
    port            => '5575',
    password        => 'password',
    passphrase      => 'passphrase',
    remoteRepo      => 'https://www.example.com/repo/oracle',
    installPackage  => 'Oracle_Access_Manager10_1_4_3_0_linux64_APACHE22_WebGate.zip',
    patchPackage    => 'Oracle_Access_Manager10_1_4_3_0_BP13_Patch_linux64_APACHE22_WebGate.zip',
    patchVersion    => '13',
  }
Defaults:
| Option | Defaults to | Description | 
|---|---|---|
| certFile | puppet:///modules/oracle_webgate/certFile.pem | Certificate file | 
| keyFile | puppet:///modules/oracle_webgate/keyFile.pem | Key file | 
| chainFile | puppet:///modules/oracle_webgate/chainFile.pem | Chain file | 
| downloadDir | /tmp/oracle_webgate_install | Temp dir where to download and unzip installation files | 
| defaultLang | en-us | |
| installLang | en-us | |
| securityMode | cert | See Oracle docs | 
| patchVersion | 0 | Version of the bundle patch | 
###Removing oracle_webgate
To fully remove the Oracle Webgate just include the class oracle_webgate:uninstall.
##Usage
The module does not require any special configuration besides what just showed. If you are using puppet 3.0+ you can take the most out of the hiera integration installing the hiera-file backend. An example might shade some light:
- 
Leave the oracle_webgate::*variable undefined
- 
Create a hiera structure like the following: /etc/puppet/hiera/data/default oracle_webgate.d/ oracle_webgate::certFile oracle_webgate::keyFile oracle_webgate::chainFile
- 
Hiera searches for a file called oracle_webgate.d/oracle_webgate::certFilein your hiera data folder providing the file content as content for the variable
The outcome is... the file is copied on the client!
##Reference
Here, list the classes, types, providers, facts, etc contained in your module. This section should include all of the under-the-hood workings of your module so people know what the module is touching on their system but don't need to mess with things. (We are working on automating this section!)
##Limitations
This module has been tested on:
- RedHat 7 64 bit + OAM Webgate for Apache 2.4
- RedHat 6 64 bit + OAM Webgate for Apache 2.2
It should work also on:
- 32 bits RedHat systems with Apache 2.2
##Development
See https://github.com/elibus/puppet-oracle_webgate/blob/master/CONTRIBUTING.md