#39 – Reconnect 2016 Recap

This week on the podcast, Kyle gives a recap of the Reconnect 2016 conference. Some of the highlights we discuss are a PUM Success Story, how to adopt Fluid, and SAML 2.0. Dan and Kyle also discuss the new PeopleSoft Image Videos and using WLST with the DPK.

We want to make this podcast part of the community discussion on PeopleSoft administration. If you have comments, feedback, or topics you’d like us to talk about, we want to hear from you! You can email us at podcast@psadmin.io, tweet us at @psa_io, or use the Twitter hashtag #psadminpodcast.

You can listen to the podcast here on psadmin.io or subscribe with your favorite podcast player using the URL below, or subscribe in iTunes.

Podcast RSS Feed

Show Notes

  • AMA Recap on the Community @ 1:00
  • HR Image 18 – Video Overview and Admin Impacts @ 3:00
  • DPK and WLST @ 6:15
  • Reconnect Recap @ 14:00
    • Phire Networking @ 17:00
    • PeopleSoft Tech SIG and PTF/UsageMonitor @ 24:00
    • PeopleSoft Keynote @ 33:00
      • Cloud Count: 66 “clouds”
      • Oracle Cloud Manager – Cloud Computer only at first @ 36:00
      • Fluid as a new UX and strategies to adopt Fluid @ 40:00
    • REST and QAS @ 53:30
    • SAML 2.0 @ 58:00
    • PeopleTools Product Panel @ 63:00
    • PUM Success Story @ NYU Langone @ 65:00

Reconnect 2016 – Day 3

Day 3 was the last day of the conference, and it was a busy one! With travel, and a presentation of my own, I didn’t get a chance to see everything I wanted to. I also didn’t get this post written until now because it took me 23 hours to get home(O’Hare was a mess due to weather), what a nightmare. That said, I had a great time. Here are my highlights from the last day.

Publishing PeopleSoft through WAP for AD FS Single Sign-on

  • This was my session.
  • Used Web Application Proxy as a rps for Supplier Portal.
  • Non-claims based pre-authentication done with AD FS using Kerberos.
  • Our Enterprise standard is SAML, so would like to use claims based pre-auth in the future.

REST Your Weary Head! Query can handle it!

  • HyperGen talked about REST and Query Access Services.
  • REST is a lot better now in 8.54 and 8.55.
  • Queries via QAS can be run Synchronously or Asynchronously.
  • QAS is a good quick and easy way to create REST web services.
  • If you have a more complicated web service, you may want to create your own message handler via App Packages.

Rethinking Excel to CI

  • Kevin Weaver talks about his alternative to ExcelToCI
  • His solution creates CI templates online instead of within Excel.
  • You upload a data sheet online and then process it in an App Engine.
  • You can find this and more on his blog – http://pskcw.blogspot.com/

PeopleSoft Single Sign-On with SAML 2.0

  • Vlad from GNC walks us through his great SSO solution.
  • This uses an IdP-initiated SSO profile.
  • Built an Assertion Consumer Service in Signon PeopleCode
  • Uses openSAML Java package to do the validation.
  • His slides had a ton of code snippets.

PeopleTools Product Panel

  • A panel of Oracle employees discuss PeopleTools.
  • MS Office will be removing ActiveX from there products soon.
  • The Finance team will be delivering a new solution for Journal Upload and other solutions that use XmlLink. Most likely using IB(similar to ExcelToCi?).
  • Talked more about Cloud Manager.
  • Will be used in Oracle private cloud at first, then maybe other cloud providers, then maybe YOUR datacenter.
  • Will be placed within an Interaction Hub instance.
  • Elastic is coming soon, likely around patch 10.
  • Question about PS Admins needing Puppet skills.
  • Oracle will be getting the DPKs better, but you will need these skills to customize and fit your organization.

#38 – Automation and more w/ Nate Werner

This week we interview Nate Werner. Nate talks about many of the unique solutions he created to make this PeopleSoft environments secure, standardized and automated. We cover a lot of topics and Nate shows why he is a top-notch PS Admin!

We want to make this podcast part of the community discussion on PeopleSoft administration. If you have comments, feedback, or topics you’d like us to talk about, we want to hear from you! You can email us at podcast@psadmin.io, tweet us at @psa_io, or use the Twitter hashtag #psadminpodcast.

You can listen to the podcast here on psadmin.io or subscribe with your favorite podcast player using the URL below, or subscribe in iTunes.

Podcast RSS Feed

Show Notes

  • Supporting CS and Integration Hub setup @ 3:00
  • Shibboleth and Oracle Traffic Director @ 7:30
  • Sign-in As @ 10:30
  • Experience with GH ERP Firewall @ 12:30
  • 2 Factor Auth @ 14:30
  • Ansible Automation and Standardization @ 18:15
  • Automating PeopleSoft Image Deployment @ 26:00
  • Stacking Application Architecture @ 30:00
  • Supporting Students v. Business Users @ 35:00
  • Supporting Mobile and Branding @ 37:00
  • Database Consolidation @ 38:45
  • Managing Releases and Downtime @ 43:30
  • Managing Files without Server Access @ 47:00
  • Everything as a Share/Mount @ 48:45
  • Smart Automation @ 56:00
  • Learning Puppet/Embracing DevOps @ 58:15

Reconnect 2016 – Day 2

Day 2 at Reconnect featured an Oracle Keynote and a bunch of deep dive sessions. Here is a quick overview.

Oracle PeopleSoft Product Line Update

  • The format was a discussion between Marc Weintraub and Paco Aubrejuan.
  • Even with all the cloud talk, no change in commitment to PeopleSoft.
  • Support for 9.1 ends Jan 2018, won’t be extended again.
  • Discussed different options with Cloud. Example, move demo\dev first.
  • Paco guessing 50% of customers at Reconnect will be in the cloud in 5 years.
  • Discussed PeopleSoft Cloud Architecture.
  • Talked about a new offering coming soon – Cloud Manager.
  • This will be a Self Service interface for doing psadmin type tasks
    • Deployments, Refreshes, Start, Stop, Clear cache, etc
  • Should be coming to 8.55
  • Selection Adoption discussion
  • Confirmed they use Scrum internally to develop and deliver images
  • We should see the size of images stabilizing now with this approach.
  • Discussion on Fluid.
  • Pushing more Related Content.
  • Confirmed again that Elasticsearch is coming soon.
  • Marc and Paco mentioned “cloud” 66 times.

PeopleSoft Technology Roadmap

  • This was given by Jeff Robbins
  • Similar to Paco’s talk
  • A lot more Cloud talk
  • Did show a screenshot of Cloud Manager – looks very nice, sorry no pic.
  • Fluid big on Homepages, Tiles and Personalization options.
  • NavBar now remembers where you were when you return.
  • Idea not just putting a Fluid stylesheet on, but refactoring for Fluid.
  • Simplified Analytics discussion.
  • Search and analytic line is blurring.
  • Rushed through some LCM and Security talk.

Leveraging PeopleSoft Test Framework to Minimize the Time to Test

  • How NYU Langone uses PTF to help with Selective Adoption.
  • Get a list of your manual test scripts first.
  • Do a PTF “project” before or after your upgrade project – not during.
  • Focus on tests that effect casual users.
  • Some power users like to do all manual testing. Let them if they can handle it.
  • Blank out field defaults when recording.
  • Documentation is key for your test scripts.
  • Layout a plan before you record.
  • Cannot simulate drag and drop.
  • They run in UAT, as well as dev and system test.
  • PI releases also tend to include Tools and middleware patching.
  • Not using Usage Monitor yet – leveraging normal compare reports, etc to determine testing needs.
  • About 40% of test scripts in PTF.

Continuously Upgrade: Are they crazy? No, actually it’s really clever!

  • Mark and Wendy from NYU Langone chat Selective Adoption.
  • They had a clever Tetris theme for their presentation.
  • Business and IT working together key.
  • More of an agile approach, versus waterfall.
  • Getting current with images 4 times a year.
  • Turned capital costs into operational costs.
  • Estimated to save them 70% versus old upgrade methods.
  • CFO tool will compare features from image to image.
  • PTF was a big deal for them.
  • HR and FIN teams have their own sprint schedules.

Oracle’s Investment in PeopleSoft Fluid UI Technology

  • Oracle’s David Bain talks Fluid
  • Fluid not just mobile, it is UX.
  • Getting reports that power users resistant to new navigation, casual users love it.
  • Multiple paths to access content, users can choose their own path.
  • Quick navigation from anywhere.
  • Homepages are role based, everyone gets a My Homepage.
  • Tiles are crefs, not pagelets.
  • Their primary job is navigation
  • Put anything in a tile
    • Component
    • iScript
    • External Source
    • Pivot Grid
    • NavCollections
  • There is a Tile wizard now
  • Activity Guides key in refactoring classic components into Fluid.
  • Native notifications can be setup via Oracle Mobile App Framework.
  • You get a restricted use license for MAF with PeopleSoft.
  • Fluid can be used in Interaction Hub
  • Can be a blend of tiles and homepages from multiple apps.
  • Page Designer is coming – data driven Fluid page design.
  • Guided branding is a wizard to help with branding – only in IH.
  • Fluid standards DocID 2063602.1
  • Fluid UI best Practices DocID 2136404.1

Reconnect 2016 – Day 1

As mentioned before, I am at Reconnect again this year and will be presenting. Day 1 of the conference tends to be all about networking, and I did plenty of it! I also learned a thing or two, which is nice to say before the deep dives even start. Here is a quick run down on the sessions I attended.

Phire Networking

This was basically a round-table discussion about Phire. We are hoping to create a SIG specifically for Phire, so be on the look out for that. Thanks to Mark from Wells Fargo for hosting the discussion.

  • Some customers do NOT let Phire handle database object builds. Those tasks go to a DB team. Mostly DB2 users.
  • There were questions regarding refreshes – how to reapply Change Requests?
    • Solution was to run a query and manually re-apply. Also, Phire has a feature to handle this but no one was using it.
  • There was consensus that Phire did not slow down migration process, but actually sped it up. Especially regarding SQL and DMS requests.
  • Some customers are packaging up maintenance out of PUM and applying via Phire
    • Only thing not working is Application Data Set steps
    • Large effort to take a Change Package and get it into a Phire Change Request
  • Questions about integrations into or out of Phire
    • Example: Central Change Management tool is system of record, can we integrate that with Phire?
    • Phire is built in PeopleTools, so you could build a solution using IB.
    • Phire Workflow has an API that gives you PeopleCode hooks into Workflow tasks.
    • Suggestion was to ask Phire about enhancements like this.
  • Question whether customers use Issues as well as Change Request management.
    • Almost everyone uses both.
    • One customer said they have 1 Issue Domain for System issues and 1 for Application issues.

PeopleSoft Technology SIG

This discussion was focused around PeopleSoft Test Framework(PTF). David Bain from Oracle was there, along with some customers who are having great success with PTF.

  • The Tech SIG has 757 members – you should join!
  • How do they use PTF?
    • Mainly regression testing only.
    • Run in Dev or System Test, but not UAT
    • Used for major releases, like get current projects.
    • Mostly used in a overnight batch mode.
    • Tests are run on dedicated desktops or VMs.
  • What skill set is needed for PTF?
    • Developers or QA Team with tech skills.
    • Familiarity with business process and automation tools a plus.
  • What level of effort did it take to setup?
    • Helps to already have Test Scripts and\or QA Team
    • Ran into some system resource issues, adjustments needed for citrix.
    • Would help if Oracle delivered Test Scripts[…see David Bain section]
  • What level of effort does it take to maintain the scripts?
    • Not much effort…so far.
    • Maintenance and Coverage reports are helpful
      • Best to have Usage Monitor up and running when recording.
      • If not running while recording, you will have less data to work with on Coverage Reports.
  • What can be done to make test scripts more repeatable?
    • Create a best practice guide, including naming conventions.
    • Break large tests into smaller tests.
    • Create small reusable tests like login, search, etc.
    • Pass in data with variables versus hard coding.
  • What are some limitations with PTF.
    • Can only record on IE 11, can execute on other browsers starting in 8.55.
    • It will lock up your machine, so use dedicated machines.
  • Highlights from David Bain
    • In the past no delivered test scripts, since everyone’s data is different.
    • Now with PI’s, everyone has the same demo data.
    • Oracle plans to start shipping PTF test scripts with PI’s.
    • The delivered scripts will be built for PI demo data in mind.
    • Time-frame could be 2016 still, but no commitment there.
    • Oracle is a HEAVY user of PTF internally.
    • Oracle has many overnight PTF jobs running, with reports waiting in the morning for teams to review.
    • Repeated that PTF is NOT a volume or performance testing tool.
    • Talked about PTF tying in with PUM Dashboard now.
    • You can store PTF scripts in one database, but execute them in another.
    • PTF metadata stored in PTTST_ records.

Public Sector Industry Networking

This was a networking event for Public Sector employees. There was more of the same at this event. Major topics were how are you using PUM, when are you getting to 9.2, are you using Fluid. Someone even got a cheap shot in on SES, that I gladly jumped on board with, ha.

Overall it was a great first day. Looking forward to some deep dives tomorrow!

Advanced WebLogic Configuration with the DPK

Continuing on our DPK series, this week we’ll explore how to do advanced web server domain configuration. The psft_configuration.yaml file gives you many of the configuration options for your web domain. While these settings will help you configure your web domain, there are more changes to WebLogic most administrators make. One of those changes is configuring SSL/Certificates and Logging.


Before the DPK, you could script configuration changes to WebLogic using the WebLogic Scripting language WSLT. WSLT is a great interface to WebLogic, and you can do quite a bit with it.

We use the psft_customizations.yaml file to document the WLST commands in a section called config_settings:. This section is not included in psft_configuration.yaml for the PIA, so it will be a new section for your files. The config_settings: section is included for app server and process scheduler sections. If you look at the file puppet\etc\modules\pt_config\tests\test_pia_create.pp you can see the PeopleTools team is using the config_settings section when creating a test domain.

In the psft_customizations.yaml file, the config_settings: section will go below the webserver_settings: section and above the site_settings: section. Everything under config_settings: is broken down into WSLT commands. To make a change to WebLogic, use the tree structure from your web domains’ config.xml file to identify a section to change. E.g, Servers/PIA/WebServer/PIA/WebServerLog/PIA will be the HTTP access log settings for the PIA server.

Under each WSLT header, you can include a key: value for any configurable option in WebLogic. For our Servers/PIA/WebServer/PIA/WebServerLog/PIA above, we’ll enable the access log:

    LoggingEnabled:                     true

When we run puppet apply, the Puppet code take this configuration and executes the WLST to make the change to WebLogic. After the puppet apply run, you can check the config.xml file to verify the updated configuration.

Using WSLT to Identify Config Values

If you don’t know what the path or values you want to change, you can spin up a WLST session and browse your web domain. To start WLST, run setWLSEnv.cmd script under your WL_HOME\server\bin folder. That will set up the environment variables so Java can find the WLST package.

Next, start up a WLST session with java weblogic.WLST. Your web server needs to be running to connect, and you’ll need the console username and password.

connect('system', 'Passw0rd', 't3://localhost:8000')

Once you connect to your domain, you can use cd() and ls() commands to navigate around the configuration tree. For example, this command will take us to the Access Log settings for the PIA.


You can do much more with WLST, but we’ll save that for another time.

SSL and Certificate Configuration

Now that we can configure a web domain via WLST commands, let’s set up SSL and a certificate for a domain. The DPK will do all the configuration, but it won’t update the pskey file. A good idea would be to prebuild your pskey file (using KeyStore Explorer) and be ready to copy into your domains piaconfig folder after the DPK runs.

This is what the config_settings section of the psft_customizations.yaml looks like to configure SSL:

    CustomIdentityKeyStorePassPhrase:   Passw0rd
    CustomTrustKeyStorePassPhrase:      Passw0rd
    KeyStores:                          CustomIdentityAndCustomTrust
    ServerPrivateKeyAlias:              psadminio-2016
    ServerPrivateKeyPassPhrase:         Passw0rd
    LoggingEnabled:                     true

If you have configured SSL through the WebLogic console before, these configuraiton options should look familiar. We tell WebLogic to use a custom keystore (pskey), the password to get into the keystore, the Private Key alias and the password for the Private Key.

In production systems, it’s not a good idea to have your unecrypted password in the yaml files. For Windows, support for encrypting password in the yaml files isn’t there yet. For Linux, eyaml can encrypt your passwords.

This is what a psft_customizations.yaml looks like for a web server domain:

    os_user:               psadm
    ps_cfg_home_dir:       e:/psoft/hr92dmo
    gateway_user:          administrator
    gateway_user_pwd:      Passw0rd
    auth_token_domain:     ".%{::domain}"

      webserver_type:           "%{hiera('webserver_type')}"
      webserver_home:           "%{hiera('weblogic_location')}"
      webserver_admin_user:     system
      webserver_admin_user_pwd: Passw0rd
      webserver_admin_port:     "%{hiera('pia_http_port')}"
      webserver_http_port:      "%{hiera('pia_http_port')}"
      webserver_https_port:     "%{hiera('pia_https_port')}"

        CustomIdentityKeyStorePassPhrase:   Passw0rd
        CustomTrustKeyStorePassPhrase:      Passw0rd
        KeyStores:                          CustomIdentityAndCustomTrust
        ServerPrivateKeyAlias:              psadminio-2016
        ServerPrivateKeyPassPhrase:         Passw0rd
        LoggingEnabled:                     true

        appserver_connections: "%{hiera('pia_psserver_list')}"
        domain_conn_pwd:       "%{hiera('domain_conn_pwd')}"

          profile_name:        DEV
          profile_user:        PTWEBSERVER
          profile_user_pwd:    Passw0rd

        report_repository_dir: "%{hiera('report_repository_dir')}"

Update Existing Domains

Unlike other parts of the DPK, the WLST commands execute every time you run puppet apply .\site.pp. So, if you want to update a config value in your web domain, the DPK will make those changes for you after the domain was created. With the app server and process schedulers, the DPK doesn’t handle changes well. Once the domain is built, configuration changes are not applied to app and batch domains.

Repeatable Processes

The goal of the DPK, Puppet and other automation software is to create a dependable and repeatable process. Taking advantage of these features in the DPK will get you closer to the ideal of complete automation. The ability to issue WLST commands against WebLogic domains gives admins another tool with the DPK to build a system to your specifications.

#37 – The REN Server

This week, Dan and Kyle talk about Event Mapping, Report Node Validation, search App Packages, and the REN server.

We want to make this podcast part of the community discussion on PeopleSoft administration. If you have comments, feedback, or topics you’d like us to talk about, we want to hear from you! You can email us at podcast@psadmin.io, tweet us at @psa_io, or use the Twitter hashtag #psadminpodcast.

You can listen to the podcast here on psadmin.io or subscribe with your favorite podcast player using the URL below, or subscribe in iTunes.

Podcast RSS Feed

Show Notes

Reconnect 2016

Summer is flying by and Reconnect 2016 is next week! I will be in Chicago and presenting again this year. I will be talking about a recent project to publish our Supplier Portal through Microsoft’s Web Application Proxy (WAP). This will cover our struggles to fit PeopleSoft in with our enterprise wide SSO solution using AD FS. If you are interested, please check it out!

  • Publishing PeopleSoft through WAP for AD FS Single Sign-on
    • Session: 100280
    • Date: Thursday, 7/21/2016
    • Time: 8:00 AM
    • Room: Narita AB

For those of you that can’t make it, there should be some content on this same topic coming through the psadmin.io pipeline soon. If you have questions or would like to discuss this topic, feel free to reach out on the Community.

As always, I’m super excited about many sessions and knowledge sharing with a bunch of really smart people. I’d like to get a good psadmin discussion going at the Tuesday night reception. Hopefully I will see you there or later in the conference. If you see me, come say hello!

Using the DPK to install only WebLogic

With the Deployment Packages, you can install an entire PeopleSoft system. But what if you want to install just one component? You can install the PIA role, but you get WebLogic, Tuxedo, Java, and a PIA domian. In this post, we’ll show how to leverage the DPK with custom Puppet manifests and install only WebLogic (and Java) on a server.

You will need to the DPK Puppet files on the server. Run the bootstrap script and stop at the “Default Initialization” question so nothing gets installed. You can use any parameters you want for the bootstrap script. We’ll be ignoring the site.pp file and using a new manifest file.

I’ll document the custom manifests in this post, but if you want to download the code you can grab it from GitHub. Copy the files in the project into the corresponding folders under the puppet\etc folder on your machine.

psft_customizations.yaml Updates

For the WebLogic install, I wanted the software to install in the e:/oracle folder. I added/updated these values in my psft_customizations.yaml file:

oracle_base:      e:/oracle

jdk_location:           "%{hiera('oracle_base')}/jdk1.7.0_95"
weblogic_location:      "%{hiera('oracle_base')}/bea"

You don’t need to use oracle_base and can ignore these changes if you want WebLogic installed to the default location.

weblogic.pp Manifest

Create a new manfiest under etc\manfiests (or copy the site.pp file) and name it weblogic.pp. In the weblogic.pp manifest, we are doing two things:

  1. Create the oracle_base folder (the DPK will fail if the base folder doesn’t exist)
  2. Call a custom DPK role (we’ll create this next)

Here is the weblogic.pp file:

# Verify the Oracle Base folder is present - DPK doesn't like it when the base folder isn't created.
file { hiera('oracle_base') :
    ensure => 'directory',

# Call custom profile to install WebLogic (and JDK)
node default {
  include ::pt_role::pt_tools_weblogic

If you’ve looked at the site.pp file you’ll recognize the second section. The first part of the file is Puppet code to create a folder if it doesn’t exist.

If you aren’t familiar with Puppet, the Puppet CookBook is a good place to get familiar with writing manifests.

WebLogic DPK Role

A new DPK role file was created under etc\modules\pt_role\manifests called pt_tools_weblogic.pp. From the post on the sites.pp file, we introduced the idea of DPK roles. The best practice is to only have one role per machine. For the WebLogic-only install, we’ll create a new role so its clear that this server is only running WebLogic.

class pt_role::pt_tools_weblogic inherits pt_role::pt_base {
  notify { "Applying pt_role::pt_tools_weblogic": }
  $ensure   = hiera('ensure')
  contain ::pt_profile::pt_weblogic

The role file uses the ensure attribute from the defaults.yaml file to determine if Puppet should install or remove WebLogic. The default value is to install (ensure = present).

Next, the role calls a new profile called pt_profile::pt_weblogic. Let’s create that file net.

WebLogic DPK Profile

A DPK profile handles the configuration lookup from Hiera and preparing Puppet for the installation (or removal). Our custom profile grabs the installation directory (oracle_base and weblogic_location) from the psft_customizations.yaml file. WebLogic requires Java too, so we configure that in the profile as well.

Create a new profile under etc\modules\pt_profile\manifests and call it pt_weblogic.pp.

# Custom Profile to prepare for WebLogic installation
class pt_profile::pt_weblogic {
  notify { "Applying pt_profile::pt_weblogic": }

  ## Hiera lookups
  $ensure                    = hiera('ensure')
  $env_type                  = hiera('env_type')

  $tools_archive_location      = hiera('archive_location')

  $jdk_hiera             = hiera('jdk')
  $jdk_location          = $jdk_hiera['location']
  $jdk_remove_value      = $jdk_hiera['remove']
  if $jdk_remove_value == false {
    $jdk_remove = false
  else {
    $jdk_remove = true
  notice ("JDK remove is ${jdk_remove}")

  $weblogic_hiera        = hiera('weblogic')
  $weblogic_location     = $weblogic_hiera['location']
  $weblogic_remove_value = $weblogic_hiera['remove']
  if $weblogic_remove_value == false {
    $weblogic_remove = false
  else {
    $weblogic_remove = true
  notice ("Weblogic remove is ${weblogic_remove}")

  $redeploy = hiera('redeploy', false)
  class { '::pt_setup::weblogic_deployment':
    ensure                 => $ensure,
    tools_archive_location => $tools_archive_location,
    inventory_location     => $inventory_location,
    jdk_location           => $jdk_location,
    jdk_remove             => $jdk_remove,
    weblogic_location      => $weblogic_location,
    weblogic_remove        => $weblogic_remove,
    redeploy               => $redeploy,
  contain ::pt_setup::weblogic_deployment

WebLogic DPK Deployment

Finally, we’ll call the Puppet code to install Java and WebLogic! We are using two DPK types in this manifest:

  • pt_deploy_jdk
  • pt_deploy_weblogic

This is why the DPK needs to be installed before using these manifests. If the DPK is missing, these calls will fail (and so will some of the hiera lookups). The deployment manifest is under the folder etc\modules\pt_setup\manifests. Create the file weblogic_deployment.pp from the code below or from the GitHub project.

# Custom Puppet Class to deploy WebLogic using the DPK
class pt_setup::weblogic_deployment (
  $ensure                 = present,
  $deploy_pshome_only     = false,
  $tools_archive_location = undef,
  $tools_install_user     = undef,
  $tools_install_group    = undef,
  $oracle_install_user    = undef,
  $oracle_install_group   = undef,
  $db_type                = undef,
  $pshome_location        = undef,
  $pshome_remove          = true,
  $inventory_location     = undef,
  $oracleclient_location  = undef,
  $oracleclient_remove    = true,
  $jdk_location           = undef,
  $jdk_remove             = true,
  $weblogic_location      = undef,
  $weblogic_remove        = true,
  $tuxedo_location        = undef,
  $tuxedo_remove          = true,
  $ohs_location           = undef,
  $ohs_remove             = true,
  $redeploy               = false,
) {

  notice ("Applying pt_setup::weblogic_deployment")

  $jdk_tag          = 'jdk'
  $weblogic_tag     = 'weblogic'

  $jdk_archive_file      = get_matched_file($tools_archive_location, $jdk_tag)
  if $jdk_archive_file == '' {
    fail("Unable to locate archive (tgz) file for JDK in ${tools_archive_location}")
  $weblogic_archive_file = get_matched_file($tools_archive_location, $weblogic_tag)
  if $weblogic_archive_file == '' {
    fail("Unable to locate archive (tgz) file for Weblogic in ${tools_archive_location}")

  $jdk_patches = hiera('jdk_patches', '')
  if ($jdk_patches) and ($jdk_patches != '') {
    notice ("JDK patches exists")
    $jdk_patches_list = values($jdk_patches)
  else {
    notice ("JDK  patches does not exists")
    $jdk_patches_list = undef

  pt_deploy_jdk { $jdk_tag:
    ensure            => $ensure,
    deploy_user       => $tools_install_user,
    deploy_user_group => $tools_install_group,
    archive_file      => $jdk_archive_file,
    deploy_location   => $jdk_location,
    redeploy          => $redeploy,
    remove            => $jdk_remove,
    patch_list        => $jdk_patches_list,

  $weblogic_patches = hiera('weblogic_patches', '')
  if ($weblogic_patches) and ($weblogic_patches != '') {
    notice ("Weblogic patches exists")
    $weblogic_patches_list = values($weblogic_patches)

  pt_deploy_weblogic { $weblogic_tag:
    ensure                    => $ensure,
    deploy_user               => $tools_install_user,
    deploy_user_group         => $tools_install_group,
    archive_file              => $weblogic_archive_file,
    deploy_location           => $weblogic_location,
    oracle_inventory_location => $inventory_location,
    oracle_inventory_user     => $oracle_install_user,
    oracle_inventory_group    => $oracle_install_group,
    jdk_location              => $jdk_location,
    redeploy                  => $redeploy,
    remove                    => $weblogic_remove,
    patch_list                => $weblogic_patches_list,
    require                   => Pt_deploy_jdk['jdk'],


The manifests under pt_setup will do the heavy work of installing new software. This custom manifest will deploy Java and WebLogic on our servers. If your bootstrap script didn’t create a dpk\archives folder, the installation will fail. The DPK manifests (and our custom one) will look for the archives before it attempts to install.


Once your custom manifests are built, go to the puppet\etc\manifests folder. Run the command

puppet apply .\weblogic.pp --trace --debug

to install WebLogic.

Future Improvements

When I did the test, I tried to follow the Roles and Profiles pattern used by the DPK. It might seem complex for a smaller installation. You could combine all this into one manifest, but then it gets ugly to maintain. When we add more software components, the abstraction between configuration and implementation allows us to re-use Puppet code.

This was a test for myself to see if I could break down some of the abstraction in the DPK and write (or modify) manifests to control more of the process. Plus, we have DPK role that we can use for WebLogic-only deployments 🙂

#36 – Brace yourselves, Elasticsearch is coming

This week on The PeopleSoft Administrator Podcast, Kyle updates his psadmin-plus project, Duncan Davies shares an “Oh No!” story, Dan talks about some custom Puppet modules he wrote, and we talk about Elasticsearch’s 8.55.10 release.


We want to make this podcast part of the community discussion on PeopleSoft administration. If you have comments, feedback, or topics you’d like us to talk about, we want to hear from you! You can email us at podcast@psadmin.io, tweet us at @psa_io, or use the Twitter hashtag #psadminpodcast.

You can listen to the podcast here on psadmin.io or subscribe with your favorite podcast player using the URL below, or subscribe in iTunes.

Podcast RSS Feed

Show Notes