With manual installation/configuration it is hard to keep up with constistent naming and locations. Many names have to be configured for servers, clusters, machines, listen-addresses. When using Loadbalancer and/or OHS (Colocated) these addresses need to be filled in in the configs consistently. One simple copy&paste mistake may cause hours of debugging and/or strange behaviour.
A FMW installation/configuration is very complex. With lots of choices to make. The Enterprise Deployment Guide is a companion in making these choises based on the best-practice-recommendation of Oracle. But it is a large set of documents, covering all the FMW products, including Clustering, High Availability, Loadbalancing and OHS config. Translating the target architecture into scripts will translate this complexity into a technical solution where only the differences in naming of the target environment has to be tweaked.
Often the different environments aren’t created by the same people. Often a project team does the setup of O & T, being the basis of A & P that are done by the team of administrators (often outsourced) that are responsible for the production systems. But those people aren’t necessarly involved in making the initial choices or know the target architecture. They have to follow installation documents delivered by the development team. But O&T often differ from A&P in HA & sizing. So translation have to be made. And therefor introducing several possible points-of-errors.
Doing an FMW installation manually can easily last 2 days for one environment. Using a script it can be done in one or two hours…
We use
Bash/Shell for the installation of the binaries, running the installers and RCU. These are run in silent mode with the use of preconfigured Response files. The shell scripts are driven by a separate env-script to set Environment Variables. Response files are expanded to set FMW_HOME, and other variables.
WLST is used for creating the domain, since the domain config does not support the use of a Response file. The wlst script is driven by a property file containing all the choices, toggles and names, to drive the script.
The Oracle installers are based on Java
Alternatives
Docker is a virtualization solution to contain a complete target installation
Virtual Assembly Builder is an Oracle Solution to declaratively create an Oracle VM Image
Maven/Hudson/Jenkins: mostly DevOps tooling to build&deploy custom development artefacts, like ADF, OSB Configs, SOA/BPM Composites, Database DDL, including datasources, JMS Queus, etc. Not so much for installations.
XL Deploy is mostly used in combination with DevOps build tools like Maven, Hudson/Jenkins. Workflow and Repo to keep track on what is developed and deployed on which target environment. Less meant for installations.
Vagrant is a tool to create, config and start/stop VMs based on templates. Puppet/Ansible are scripting tools to do OS Config, and perform parameterized installations and configurations. Work on recipies that can work out derived properties and use those in the scripts. Can call WLST and shell.
Als alles is geinstalleerd op shared storage:
- Installeer de software eenmaal (of tweemaal indien de software niet op shared storage staat)
- Creeer het domein en start alles.
Indien geen shared storage:
- Installeer de software tweemaal
- Creeer het domein
- Pack / unpack het domein en start alles
Producten invullen en animeren to een passend scherm (liefst leesbaar bij print / PDF)
Volgorde: OSB, WSM, SOA, BAM, WCP en WCC
Dit is globaal de stappen die volgens de EDG worden doorlopen
Voor het creeëren van het domain worden deze stappen doorlopen.
Animatie toevoegen
Globaal uitleggen per stap
Functie kort uitleggen en hoe deze gebruikt wordt bij het zetten van het wachtwoord
Scripting is often used in virtualized environments (like IaaS).
We noticed that a lot of encryption / decryption is done.
A low entropy setting may cause delays for this (en/de)crytion causing long running installation / configuration.
12c is using encrypted communication by default, so this should be raised often.
When you get higher in the OTAP installations, you want to use a hardware load balancer / OTD
This should be set up seprately!
Firewalls should be configured as required.
Also setup seperately!
We did not script the download as this is a single time action.
The downloaded software can be copied to a share / ... To be used during installation.
Envsubst takes in a file and replaces all occurrences of a Environment Variable with it’s value.
This way we can parameterize the RSP with a template file and fill in the FMW_HOME for instance.
Oracle HTTP Server hadden we al genoemd. Zou ik direct na FMW Infrastructure plaatsen.
Tijdens de installatie van de diverse FMW producten worden de templates op de ‘juiste’ plaats neergezet.
Tijdens het aanmaken en extenden van het domeein woerden deze gebruikt in de WLST code.
Het aanmaken van het domein gebeurt op basis van het basis template (wlsjar) en het uitbreiden met de template(s) voor de geselecteerde producten.
Sommige templates selecteren automatisch ook andere templates
Deze dienen voor...
Deze dienen voor...
Deze dienen voor...
Deze dienen voor...
Deze dienen voor...
Een (Unix)machine representeert de host waarop de servers draaien en is feitelijk een abstractie naar de NodeManager. Dus door Servers aan een Machine toe te voegen, ‘weet’ de AdminServer welke nodemanager te benaderen om een betreffende Server te kunnen starten/stoppen/killen.
In de machine configuratie worden de betreffende connectiegegevens van de Node manager opgeslagen.
Create Cluster en het toevoegen van de managed servers aan het cluster, zorgt er voor dat de deployments worden geretarget naar cluster niveau. Vervolgens kunnen er meerdere managed servers aan toegevoegd worden die automatisch de deployments mee krijgen.
ToDo: clusters bevatten ook de FrontEnd host/port van de load balancer. Wordt nu (nog) niet gezet. Dit zorgt voor een rewrite van de URL naar de loadbalancer/OHS.
Adapt ManagegServer zorgt ervoor dat een bestaande ManagedServer aan het betreffende cluster en machine wordt toegevoegd. Zet verder de listenadres en hernoemt het naar de geconfigureerde naam.
Bij het toevoegen van meeste FMW Templates wordt automatisch een server aangemaakt. Die moet dan hernoemd worden naar de betreffende naam uit de fmw.properties. Dit geldt niet voor alle FMW product templates. M.n. bijvoorbeeld WSM, omdat de WSM Policy Manager soms opgenomen worden in SOA of OSB servers.
Bij meeste templates wordt automatisch al een eerste server aangemaakt. Deze wordt hernoemd volgens de fmw.properties. Maar voor uitbreiding van het cluster kunnen extra managed servers worden aangepast. ChangeManagedServer is een functie die wordt hergebruikt voor het bijwerken van bestaande als ook nieuw gecreëerde servers.
Het begrip Server Groups is iets nieuws in WLS 12c. En zorgt voor een default deployment van de servers. Voor SOA en OSB kun je bijvoorbeeld kiezen voor gecombineerde servers die ook de WSM Policy Manager bevatten (‘SOA-MGD-SVRS’, ‘OSB-MGD-SVRS-COMBINED ‘) of voor een separate WSM-PM cluster zodat SOA en OSB clusters de WSM-PM niet hoeven te bevatten (‘SOA-MGD-SVRS-ONLY’, ‘OSB-MGD-SVRS-ONLY’)
Daarnaast is in 12c de startup scripting aangepast. WLS 11g had alleen een setDomainEnv.sh, waarin voor alle servers dezelfde memory settings wordt gedaan. In 12c is er een setStartupEnv.sh bijgekomen, waarin op basis van server groups specifieke settings worden bepaald. Waar onder de USER_MEM_ARGS. In een zelf aan te maken setUserOverrides.sh script kun je dat verder bij werken, door te checken op de servergroups.
ToDo: In het script wordt hier helaas nog geen onderscheid in gemaakt…. Hier zou dus de servergroups moeten worden gezet op basis van de wsm-enabled toggle!
Deze dienen voor...
Hier wordt per server een boot.properties file aangemaakt met de weblogic username/password. Zodat deze niet hoeft te worden gevraagd als de server wordt gestart.
Min en max datasources worden gezet op basis van de Repository Size (SOA_PROFILE_TYPE=SMALL/MEDIUM/LARGE) setting bij het draaien van RCU. Maar vaak niet juist. Correct zetten van de min/max/initial connections is van grote invloed op de performance.
Firewalls zijn soms ‘connection-breakers’ voor lang lopende database connecties. Configureer de Test On Reserve of Test Frequency om te zorgen dat connections worden gecheckt. Zet Connection Frequency op de helft van de tijd van een Firewall connection time-out.
In WLS 12c wil een server soms niet starten als bij startup omdat de database connecties niet te maken zijn. Dit kan voorkomen worden door een connection retry van bijv. 300 sec (5 min) op te geven.