Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

RSS

peopletools (33) Versions 2.1.3

Provides resources to install and configure an Oracle PeopleTools stack

Berkshelf/Librarian
Policyfile
Knife
cookbook 'peopletools', '= 2.1.3'
cookbook 'peopletools', '= 2.1.3', :supermarket
knife cookbook site install peopletools
knife cookbook site download peopletools
README
Dependencies
Changelog
Quality

peopletools Chef cookbook

The peopletools cookbook provides resources and recipes to install and configure an Oracle PeopleTools stack. This is based on the Puppet code and archive files in the Oracle DPK bundle (starting with 8.55.01).

Requirements

  • Chef 12.5 or higher
  • Ruby 2.0 or higher (preferably from the Chef full-stack installer)
  • Network accessible package repositories

Platform Support

The following platforms have been tested with Test Kitchen: - CentOS - Red Hat

Dependencies

This cookbook depends on the following cookbooks. - ark

Usage

metadata.rb

Include peopletools as a dependency in your cookbook's metadata.rb.

depends 'peopletools', '~> 2.1.3'

Copy the tgz archive files for Oracle Inventory, JDK, PS Home, Tuxedo, WebLogic, etc from the Oracle delivered DPK to a repository such as Artifactory. Configure the ['peopletools']['archive_repo'] attribute to point to the repository location. Use the resources to deploy and configure PeopleTools.

Resources

Config:

peopletools_tnsnames

Resource to configure tnsnames.ora.

properties
  • db_host: Database host. Required.
  • db_name: Database name. Required.
  • db_port: Database port. Default: '1521'.
  • db_protocol: Database protocol (SDP | TCP | TCPS). Default: 'TCP'.
  • db_service_name Database service name. Default: db_name.
  • group: tnsnames.ora group. Default: 'oinstall'.
  • mode: tnsnames.ora mode. Default: '0644'.
  • oracle_client_version: Oracle Client version. Name Property.
  • owner: tnsnames.ora owner. Default: 'oracle'.
  • path: tnsnames.ora path. Default: "/opt/oracle/psft/pt/oracle-client/#{oracle_client_version}/network/admin".
  • server: Server type (DEDICATED | SHARED). Default: 'DEDICATED'.
actions
  • create

peopletools_appserver_domain

Resource to configure appserver domain.

properties
  • config_settings: Config settings. Default: {}.
  • domain_name: Domain name. Name Property.
  • domain_user: Domain user. Default: 'psadm2'.
  • env_settings: Environment settings. Default: [].
  • feature_settings: Feature settings. Default: [].
  • psadmin_path: Path to psadmin. Default: ::File.join(ps_home, 'appserv/psadmin').
  • port_settings: Port settings %w(WSL_PORT JSL_PORT JRAD_PORT). Default: [].
  • ps_home: PS Home. Required.
  • ps_cfg_home: PS Config Home. Required.
  • startup_settings: Startup settings. Required.
  • template_type: Template type (small | medium | large | developer). Default: 'small'.
actions
  • create (Default)
  • boot
  • shutdown

Deployment:

peopletools_inventory

Resource to deploy Oracle Inventory.

properties
  • inventory_location: Inventory location. Default: '/opt/oracle/psft/db/oraInventory'.
  • inventory_user: Inventory user. Default: 'oracle'.
  • inventory_group: Inventory group. Default: 'oinstall'.
  • inventory_minimum_ver: Inventory minimum version. Default: '2.1.0.6.0'.
  • inventory_saved_with: Inventory saved with version. Default: '13.2.0.0.0'.
actions
  • create

peopletools_jdk

Resource to deploy Oracle JDK.

properties
  • archive_url: JDK archive file URL. Required.
  • deploy_location: Deploy location. Default: "/opt/oracle/psft/pt/jdk#{version}".
  • deploy_user: Deploy user. Default: 'psadm1'.
  • deploy_group: Deploy group. Default: 'oinstall'.
  • version: JDK version. Name Property.
actions
  • deploy

peopletools_oracle_client

Resource to deploy Oracle Client.

properties
  • archive_url: Oracle Client archive file URL. Required.
  • deploy_location: Deploy location. Default: "/opt/oracle/psft/pt/oracle-client/#{version}".
  • deploy_user: Deploy user. Default: 'oracle'.
  • deploy_group: Deploy group. Default: 'oinstall'.
  • home_name: Oracle Client inventory home name. Default: 'OraClient12cHome'.
  • inventory_location: Inventory location. Default: '/opt/oracle/psft/db/oraInventory'.
  • inventory_user: Inventory user. Default: 'oracle'.
  • inventory_group: Inventory group. Default: 'oinstall'.
  • tmp_dir: Temporary directory for extracting archive. Default: "/opt/oracle/psft/pt/oracle-client/#{version}/oc_tmp".
  • version: Oracle Client version. Name Property.
actions
  • deploy

peopletools_ps_app_home

Resource to deploy Oracle PS App Home.

properties
  • archive_url: PS App Home archive file URL. Required.
  • db_platform: Database platform (ORACLE | DB2ODBC | DB2UNIX). Default: 'ORACLE'.
  • deploy_location: Deploy location. Default: '/opt/oracle/psft/pt/ps_app_home'.
  • deploy_user: Deploy user. Default: 'psadm3'.
  • deploy_group: Deploy group. Default: 'appinst'.
  • extract_only: Extract archive only (true | false). Default: false.
  • version: PS App Home version. Name Property.
actions
  • deploy

peopletools_ps_home

Resource to deploy Oracle PS Home.

properties
  • archive_url: PS Home archive file URL. Required.
  • db_platform: Database platform (ORACLE | DB2ODBC | DB2UNIX). Default: 'ORACLE'.
  • deploy_location: Deploy location. Default: "/opt/oracle/psft/pt/ps_home#{version}".
  • deploy_user: Deploy user. Default: 'psadm1'.
  • deploy_group: Deploy group. Default: 'oinstall'.
  • extract_only: Extract archive only (true | false). Default: false.
  • unicode_db: Unicode database (true | false). Default: true.
  • version: PS Home version. Name Property.
actions
  • deploy

peopletools_tuxedo

Resource to deploy Oracle Tuxedo.

properties
  • archive_url: Tuxedo archive file URL. Required.
  • deploy_location: Deploy location. Default: '/opt/oracle/psft/pt/bea/tuxedo'.
  • deploy_user: Deploy user. Default: 'psadm1'.
  • deploy_group: Deploy group. Default: 'oinstall'.
  • home_name: Oracle Client inventory home name. Default: 'OraTux1213Home'.
  • inventory_location: Inventory location. Default: '/opt/oracle/psft/db/oraInventory'.
  • inventory_user: Inventory user. Default: 'oracle'.
  • inventory_group: Inventory group. Default: 'oinstall'.
  • tlisten_password: Tuxedo listener password. Required.
  • version: Tuxedo version. Name Property.
actions
  • deploy

peopletools_weblogic

Resource to deploy Oracle WebLogic.

properties
  • archive_url: WebLogic archive file URL. Required.
  • deploy_location: Deploy location. Default: '/opt/oracle/psft/pt/bea'.
  • deploy_user: Deploy user. Default: 'psadm1'.
  • deploy_group: Deploy group. Default: 'oinstall'.
  • home_name: Oracle Client inventory home name. Default: 'OraWL1213Home'.
  • inventory_location: Inventory location. Default: '/opt/oracle/psft/db/oraInventory'.
  • inventory_user: Inventory user. Default: 'oracle'.
  • inventory_group: Inventory group. Default: 'oinstall'.
  • jdk_location: JDK location. Default: "/opt/oracle/psft/pt/jdk#{jdk_version}".
  • jdk_version: JDK version. Required.
  • tmp_dir: Temporary directory for extracting archive. Default: '/opt/oracle/psft/pt/wl_tmp'.
  • version: WebLogic version. Name Property.
actions
  • deploy

Setup:

peopletools_bashrc

Resource to configure .bashrc.

properties
  • cobol_dir: COBOL directory. Default: '/opt/microfocus/cobol'.
  • custom_commands: Custom commands for .bashrc file. Default: [].
  • db2_instance_user: DB2 instance user. Optional.
  • group: .bashrc group. Default: 'oinstall'.
  • mode: .bashrc mode. Default: '0644'.
  • oracle_client_version: Oracle Client version. Required.
  • oracle_home: Oracle Home path. Default: "/opt/oracle/psft/pt/oracle-client/#{oracle_client_version}".
  • owner: .bashrc owner. Name Property.
  • path: .bashrc path. Default: "/home/#{owner}".
  • ps_app_home: PS App Home path. Default: '/opt/oracle/psft/pt/ps_app_home'.
  • ps_cfg_home: PS Config Home path. Default: path.
  • ps_cust_home: PS Custom Home path. Default: "#{path}/custom".
  • ps_home: PS Home path. Default: "/opt/oracle/psft/pt/ps_home#{ps_home_version}".
  • ps_home_version: PS Home version. Required.
  • tns_admin: TNS admin path. Optional.
  • tuxedo_dir: Tuxedo directory. Default: "/opt/oracle/psft/pt/bea/tuxedo/tuxedo#{tuxedo_version}".
  • tuxedo_version: Tuxedo version. Required.
actions
  • create

Examples

Application server

# users/groups and system settings
include_recipe "#{cookbook_name}::system"

# oracle_client
peopletools_oracle_client '12.1.0.2' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-oracleclient-12.1.0.2.tgz"
end

# tnsnames
peopletools_tnsnames '12.1.0.2' do
  db_host 'localhost'
  db_name 'KITCHEN'
end

# ps_home
peopletools_ps_home '8.55.05' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-pshome8.55.05.tgz"
end

# tuxedo
peopletools_tuxedo '12.1.3.0.0' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-tuxedo12.1.3.0.0.tgz"
  tlisten_password 'password'
end

# .bashrc
peopletools_bashrc 'psadm2' do
  oracle_client_version '12.1.0.2'
  ps_home_version '8.55.05'
  tuxedo_version '12.1.3.0.0'
end

# appserver domain
peopletools_appserver_domain 'KIT' do
  config_settings(
    '[Domain Settings]' => ['Allow Dynamic Changes=Y', 'Domain ID=KIT'],
    '[SMTP Settings]' => ['SMTPServer=localhost']
  )
  feature_settings [
    '{PUBSUB}=No', # Pub/Sub Servers
    '{QUICKSRV}=No', # Quick Server
    '{QUERYSRV}=Yes', # Query Servers
    '{JOLT}=Yes', # Jolt
    '{JRAD}=No', # Jolt Relay
    '{WSL}=Yes', # WSL
    '{DBGSRV}=No', # PC Debugger
    '{RENSRV}=No', # Event Notification
    '{MCF}=No', # MCF Servers
    '{PPM}=No', # Perf Collator
    '{ANALYTICSRV}=No', # Analytic Servers
    '{DOMAIN_GW}=No', # Domains Gateway
    '{SERVER_EVENTS}=No' # Push Notifications
  ]
  ps_home '/opt/oracle/psft/pt/ps_home8.55.05'
  ps_cfg_home '/home/psadm2'
  startup_settings [
    node['peopletools']['db_name'], # Database name
    'ORACLE', # Database type
    'opr_user_id', # OPR user ID
    'opr_user_password', # OPR user password
    'KIT', # Domain ID
    '_____', # Add to path
    'connect_id', # Connect ID
    'connect_password', # Connect password
    '_____', # Server name
    'domain_connection_password', # Domain connection password
    'ENCRYPT' # Encrypt|Noencrypt passwords
  ]
end

Web server

# users/groups and system settings
include_recipe "#{cookbook_name}::system"

# ps_home
peopletools_ps_home '8.55.05' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-pshome8.55.05.tgz"
end

# jdk
peopletools_jdk '1.7.0_95' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-jdk1.7.0_95.tgz"
end

# weblogic
peopletools_weblogic '12.1.3' do
  archive_url "#{node['peopletools']['archive_repo']}/pt-weblogic12.1.3.tgz"
  jdk_version '1.7.0_95'
end

# .bashrc
peopletools_bashrc 'psadm2' do
  oracle_client_version '12.1.0.2'
  ps_home_version '8.55.05'
  tuxedo_version '12.1.3.0.0'
end

System recipe

# groups
node.default['peopletools']['group']['psft_runtime']['name'] = 'psft'
node.default['peopletools']['group']['psft_app_install']['name'] = 'appinst'
node.default['peopletools']['group']['oracle_install']['name'] = 'oinstall'
node.default['peopletools']['group']['oracle_runtime']['name'] = 'dba'

# user defaults
node.default['peopletools']['user']['home_dir'] = '/home'
node.default['peopletools']['user']['shell'] = '/bin/bash'

# users
node.default['peopletools']['user']['psft_install']['name'] = 'psadm1'
node.default['peopletools']['user']['psft_runtime']['name'] = 'psadm2'
node.default['peopletools']['user']['psft_app_install']['name'] = 'psadm3'
node.default['peopletools']['user']['oracle']['name'] = 'oracle'

# limits
node.default['peopletools']['limits']['group']['hard']['nofile'] = 65_536
node.default['peopletools']['limits']['group']['soft']['nofile'] = 65_536
node.default['peopletools']['limits']['group']['hard']['nproc'] = 65_536
node.default['peopletools']['limits']['group']['soft']['nproc'] = 65_536
node.default['peopletools']['limits']['group']['hard']['core'] = 'unlimited'
node.default['peopletools']['limits']['group']['soft']['core'] = 'unlimited'
node.default['peopletools']['limits']['group']['hard']['memlock'] = 500_000
node.default['peopletools']['limits']['group']['soft']['memlock'] = 500_000
node.default['peopletools']['limits']['group']['hard']['stack'] = 102_400
node.default['peopletools']['limits']['group']['soft']['stack'] = 102_400
node.default['peopletools']['limits']['user']['hard']['nofile'] = 131_072
node.default['peopletools']['limits']['user']['soft']['nofile'] = 131_072
node.default['peopletools']['limits']['user']['hard']['nproc'] = 131_072
node.default['peopletools']['limits']['user']['soft']['nproc'] = 131_072
node.default['peopletools']['limits']['user']['hard']['core'] = 'unlimited'
node.default['peopletools']['limits']['user']['soft']['core'] = 'unlimited'
node.default['peopletools']['limits']['user']['hard']['memlock'] = 500_000
node.default['peopletools']['limits']['user']['soft']['memlock'] = 500_000

# sysctl parameters
node.default['sysctl']['params']['kernel']['core_uses_pid'] = 1
node.default['sysctl']['params']['kernel']['msgmnb'] = 65_538
node.default['sysctl']['params']['kernel']['msgmni'] = 1024
node.default['sysctl']['params']['kernel']['msgmax'] = 65_536
node.default['sysctl']['params']['kernel']['shmmax'] = 68_719_476_736
node.default['sysctl']['params']['kernel']['shmall'] = 4_294_967_296
node.default['sysctl']['params']['kernel']['shmmni'] = 4096
node.default['sysctl']['params']['net']['ipv4']['ip_local_port_range'] = '10000 65500'
node.default['sysctl']['params']['net']['ipv4']['tcp_keepalive_time'] = 90
node.default['sysctl']['params']['net']['ipv4']['tcp_timestamps'] = 1
node.default['sysctl']['params']['net']['ipv4']['tcp_window_scaling'] = 1
include_recipe 'sysctl::apply'

# groups
[node['peopletools']['group']['psft_runtime']['name'],
 node['peopletools']['group']['psft_app_install']['name'],
 node['peopletools']['group']['oracle_install']['name'],
 node['peopletools']['group']['oracle_runtime']['name']
].each do |g|
  group g do
    append true
    action :create
  end
end

# users
{ node['peopletools']['user']['psft_install']['name'] => node['peopletools']['group']['oracle_install']['name'],
  node['peopletools']['user']['psft_runtime']['name'] => node['peopletools']['group']['oracle_install']['name'],
  node['peopletools']['user']['psft_app_install']['name'] => node['peopletools']['group']['psft_app_install']['name'],
  node['peopletools']['user']['oracle']['name'] => node['peopletools']['group']['oracle_install']['name']
}.each do |n, g|
  user n do
    gid g
    home ::File.join(node['peopletools']['user']['home_dir'], n)
    shell node['peopletools']['user']['shell']
    supports manage_home: true
  end
end

# psft_runtime group membership
group node['peopletools']['group']['psft_runtime']['name'] do
  append true
  members [node['peopletools']['user']['psft_install']['name'],
           node['peopletools']['user']['psft_runtime']['name'],
           node['peopletools']['user']['psft_app_install']['name']
          ]
  action :create
end

# oracle_runtime group membership
group node['peopletools']['group']['oracle_runtime']['name'] do
  append true
  members node['peopletools']['user']['oracle']['name']
  action :create
end

# limits
[node['peopletools']['group']['psft_runtime']['name'],
 node['peopletools']['group']['psft_app_install']['name']
].each do |g|
  limits_config g do
    limits_array = []
    node['peopletools']['limits']['group'].each do |t, a|
      a.each do |i, v|
        limits_array.push(domain: g, type: t, item: i, value: v)
      end
    end
    limits limits_array
    only_if { node['peopletools']['limits']['group'].respond_to?('each') }
  end
end

# pt directory
directory '/opt/oracle/psft/pt' do
  owner node['peopletools']['user']['psft_install']['name']
  group node['peopletools']['group']['oracle_install']['name']
  mode 0755
  recursive true
end

Testing

.kitchen.yml is configured to use vagrant with centos-7.2. Two environment variables must be configured to set the ['peopletools']['archive_repo'] and ['peopletools']['ps_app_home']['archive_repo'] attribute values. These should be set to the location of the repositories which hold the archive files for PeopleTools and ps_app_home. They can be different locations if required, and should not contain a trailing forward slash. E.g.

PEOPLETOOLS_ARCHIVE_REPO=http://artifacts.local.org/artifactory/software/oracle/peoplesoft/peopletools/8.55.05
PEOPLETOOLS_PS_APP_HOME_ARCHIVE_REPO=http://artifacts.local.org/artifactory/software/oracle/peoplesoft/finance/9.2.017

Contributing

  1. Fork the repository on GitHub.
  2. Create a named feature branch (like add_component_x).
  3. Write your change.
  4. Write tests for your change (this cookbook currently uses InSpec with Test Kitchen).
  5. Run the tests, ensuring they all pass.
  6. Submit a Pull Request using GitHub.

License and Authors

Author: Richard Lock

Copyright 2016 University of Derby

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Dependent cookbooks

ark ~> 2.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

peopletools Cookbook CHANGELOG

2.1.3 (2016-10-06)

  • Corrected bashrc variables to match properties.

2.1.2 (2016-10-06)

  • Updated properties for bashrc resource.

2.1.1 (2016-10-04)

  • Added port_settings property to appserver_domain resource and updated readme.

2.1.0 (2016-10-03)

  • Added appserver_domain resource and tests.

2.0.0 (2016-09-29)

  • Removed attributes and recipes and updated some resource properties.

1.2.5 (2016-05-12)

  • Changed additional_commands property to custom_commands in bashrc resource and set default.

1.2.4 (2016-05-11)

  • Added additional_commands property to bashrc resource.

1.2.3 (2016-05-10)

  • Added ps_cust_home_dir variable to bashrc template.

1.2.2 (2016-05-10)

  • Changed bashrc ps_cfg_home_dir and ps_cust_home_dir property defaults.

1.2.1 (2016-05-06)

  • Changed bashrc and tnsnames resources to use path as name property.

1.2.0 (2016-05-06)

  • Added bashrc resource.

1.1.0 (2016-05-05)

  • Added tnsnames resource.

1.0.1 (2016-04-08)

  • Modified guard for tuxedo to avoid install order issues with weblogic.

1.0.0 (2016-04-08)

  • Renamed ps_apphome resource to ps_app_home to match Oracle references.

0.3.4 (2016-04-07)

  • Removed setting of password for users; tidied up system recipe/attributes.

0.3.3 (2016-04-06)

  • Renamed default oracle user from oracle2 to oracle.

0.3.2 (2016-04-05)

  • Moved sysctl attributes from attributes file to system recipe to prevent issues with wrapper cookbooks.

0.3.1 (2016-03-03)

  • Updated deploy user/group for ps_apphome to match Oracle default.

0.3.0 (2016-03-03)

  • Added attribute to allow ps_apphome archive_repo to be different from the peopletools archive_repo and updated Readme.

0.2.0 (2016-03-03)

  • Added limits attributes and configuration for psft_runtime and psft_app_install groups.

0.1.3 (2016-03-01)

  • Changed deployment resources property from archive_file to archive_url.

0.1.2 (2016-03-01)

  • Added cookbook property to template resources to prevent wrapper cookbook issues.

0.1.1 (2016-02-29)

  • Fixed RuboCop offenses; updated Readme.

0.1.0 (2016-02-29)

  • Initial release of peopletools.

Collaborator Number Metric
            

2.1.3 failed this metric

Failure: Cookbook has 1 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Foodcritic Metric
            

2.1.3 passed this metric