GithubHelp home page GithubHelp logo

umleitungen / workflow_chef Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibmbpm/workflow_chef

0.0 0.0 0.0 410 KB

IBM Business Automation Workflow Chef Deployment

Shell 14.49% Ruby 28.26% HTML 57.25%

workflow_chef's Introduction

IBM Business Automation Workflow Chef Deployment

Description

Use this script to work with Chef and the IBM Business Automation Workflow Cookbook project to deploy IBM Business Automation Workflow Enterprise automatically.

Requirements

Platform:

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Red Hat Enterprise Linux (RHEL) Server 6.8
  • Red Hat Enterprise Linux (RHEL) Server 7.4

Database:

  • DB2
  • Oracle

Chef:

Latest stable release:

  • Chef Infra Server 13.0.17
  • Chef Workstation 0.7.4
  • Chef Infra Client 15.2.20

Cookbooks:

Scenarios

Single node scenario

This script works with the IBM Business Automation Workflow Cookbook project to deploy IBM Business Automation Workflow Enterprise on a single host.

Single Node Topology:

Single host: IBM Business Automation Workflow Enterprise - Deployment Manager and Custom Node, one cluster member.

Software Deployed

IBM WebSphere Application Server Network Deployment V8.5.5.15
IBM Business Automation Workflow Enterprise V19.0.0.2
IBM DB2 Enterprise Server Edition V11

Single Node Structure

Installation and configuration

Install and configure IBM Business Automation Workflow Enterprise on a single host.

<Project_ROOT>/singlenode/baw_singlenode_fresh_install.properties
<Project_ROOT>/singlenode/baw_singlenode_fresh_install.sh
Upgrade

Upgrade IBM Business Automation Workflow Enterprise with fix packs on a single host.

<Project_ROOT>/singlenode/upgrade/baw_singlenode_upgrade.properties
<Project_ROOT>/singlenode/upgrade/baw_singlenode_upgrade.sh
Apply interim fix

Apply interim fix packs to IBM Business Automation Workflow Enterprise on one single host.

<Project_ROOT>/singlenode/apply_ifix/baw_singlenode_apply_ifix.properties
<Project_ROOT>/singlenode/apply_ifix/baw_singlenode_apply_ifix.sh

Multinode scenario

This script works with the IBM Business Automation Workflow Cookbook project to deploy IBM Business Automation Workflow Enterprise on two hosts.

Multinode Topology:

Host 1: IBM Business Automation Workflow Deployment Manager, Custom Node, one cluster member.
Host 2: IBM Business Automation Workflow Custom Node, one cluster member.

Software Deployed

IBM WebSphere Application Server Network Deployment V8.5.5.15
IBM Business Automation Workflow Enterprise V19.0.0.2

Multiple Nodes Structure

Installation and configuration

Install and configure IBM Business Automation Workflow Enterprise on two hosts.

<Project_ROOT>/multinodes/baw_multinodes_fresh_install.properties
<Project_ROOT>/multinodes/baw_multinodes_fresh_install.sh
Upgrade

Upgrade IBM Business Automation Workflow Enterprise on two hosts.

<Project_ROOT>/multinodes/upgrade/baw_multinodes_upgrade.properties
<Project_ROOT>/multinodes/upgrade/baw_multinodes_upgrade.sh
Apply interim fix

Apply interim fix packs to IBM Business Automation Workflow Enterprise on two hosts.

<Project_ROOT>/multinodes/apply_ifix/baw_multinodes_apply_ifix.properties
<Project_ROOT>/multinodes/apply_ifix/baw_multinodes_apply_ifix.sh

Preparation

  1. Prepare hosts for the Chef Server and Chef Workstation and set up the Chef environment.
    1.1 Prepare hosts for the Chef Server and Chef Workstation.
    You can install the Chef Server and the Chef Workstation on a single host or two separate hosts.
    1.2 Prepare hosts (as Chef Client nodes) for Business Automation Workflow installation.
    A host must have one of the supported platforms installed. The number of hosts depends on your needs and the topology you choose: one host for a Single Node Topology, two hosts for a Multinode Topology.
    If a host has internet access, the Chef Clients are automatically installed. If a host doesn’t have internet access, you must manually install the Chef Clients.
    1.3 Configure the /etc/hosts file on all hosts in the topology with the Chef Server, Chef Workstation, and Chef Clients information.

    Notes: 
    Include the following information for each host:
    [IP_address] [your_host_fully_qualified_domain_name] [your_host_short_name]
    

    For example,

    tail /etc/hosts
    
    # Configuration for BAW Chef
    
    # Chef Server and Chef Workstation host
    10.0.16.101 hostname1.example.org hostname1
    
    # Multinode scenario
    # Chef Client host, Workflow01, DMGR node
    10.0.16.102 hostname2.example.org hostname2
    # Chef Client host, Workflow02, Managed node
    10.0.16.103 hostname3.example.org hostname3 
    
    # Single node scenario
    # Chef Client host, Single node
    10.0.16.104 hostname4.example.org hostname4
    
    Notes: 
    Replace "10.0.16.101, 10.0.16.102, 10.0.16.103, 10.0.16.104" with your hosts' IP address.
    Replace "hostname1, hostname2, hostname3, hostname4" with your host short names. 
    Replace "example.org" with your domain name.
    

    1.4 Set up the Chef environment. For information about configuring the Chef Server and Chef Workstation, refer to https://docs.chef.io/chef_overview.html.

  2. On the Chef Workstation host.
    2.1 Download the cookbook projects with the branch name listed in the following table and unzip them if necessary.
    2.2 Find the workflow, linux, and ibm_cloud_utils cookbooks in the <Project_ROOT>/chef/cookbooks/ folder for each project and copy them to the cookbook folder configured in your Chef configuration file with "cookbook_path" attribute (see https://docs.chef.io/config_rb.html).
    2.3 Download this IBM Business Automation Workflow Chef Deployment (Workflow_Chef) project to the "chef-repo" (see https://docs.chef.io/chef_repo.html) directory, from where you can run the knife commands.

Cookbook Download Branch
IBM Business Automation Workflow Cookbook:
Cookbook Path: <Project_ROOT>/chef/cookbooks/workflow
https://github.com/ibmbpm/Workflow_Chef/tree/master/cookbook/cookbook_ibm_workflow_multios
OR <Workflow_Chef_Project_ROOT>/cookbook/cookbook_ibm_workflow_multios
3.0
Linux Cookbook:
Cookbook Path:<Project_ROOT>/chef/cookbooks/linux
https://github.com/IBM-CAMHub-Open/cookbook_ibm_utils_linux 2.0
Ibm_cloud_utils Cookbook:
Cookbook Path: <Project_ROOT>/chef/cookbooks/ibm_cloud_utils
https://github.com/IBM-CAMHub-Open/cookbook_ibm_cloud_utils_multios 2.0
  1. Make sure the "cookbook_path" in your Chef configuration file points to the cookbooks you downloaded in Step 2, then upload the required cookbooks to the Chef Server.
    For example:

    knife cookbook upload ibm_cloud_utils linux workflow
  2. Download the IBM Business Automation Workflow 18.0.0.1 installation packages from https://www.ibm.com/software/passportadvantage/pao_customer.html. Download workflow.19002.delta.repository.zip, 8.5.5-WS-WAS-FP015-part1.zip; 8.5.5-WS-WAS-FP015-part2.zip and 8.5.5-WS-WAS-FP015-part3.zip from IBM Fix Central https://www-945.ibm.com/support/fixcentral/

  3. If you are installing IBM Business Automation Workflow using an Oracle database server, prepare one of the following JDBC drivers: ojdbc6.jar, ojdbc7.jar, ojdbc8.jar.

  4. Prepare the software repository.
    Upload the IBM Business Automation Workflow installation images to the software repository. The permission for the software repository must be at least 755 for the deployment to succeed. You must include the mandatory fix pack packages and interim fixes.
    You can prepare the software repository in one of the following ways:

    • As a local software repository on each Chef Client
    • As a remote HTTPS Server shared among the Chef Clients

    Before you run the shell script, configure the root path of the software repository in the properties files.
    For example, for a local software repository:
    ibm_sw_repo=file:///opt/swRepo 
    
    For example, for a remote HTTPS server:
    ibm_sw_repo=https://9.180.111.29:9999
    
    To enable authentication on the remote HTTPS server, you must also add the user name and password properties to the properties files.
    For example:
      #Software Repository User Name: ibm_sw_repo_user can be empty when using local repository
      ibm_sw_repo_user=repouser
      #Software Repository User Password - Base 64 encoded: ibm_sw_repo_password can be empty when using local repository
      ibm_sw_repo_password=cGFzc3cwcmQ=

    The following table shows the required images with their required names and paths.

    Notes: The [ibm_sw_repo] is the software repository root.
    
Product Version Arch Required path File

IBM Business Automation Workflow

(Websphere Application Server included)

18.0.0.1

8.5.5
X86_64 [ibm_sw_repo]/workflow
BAW_18_0_0_1_Linux_x86_1_of_3.tar.gz

BAW_18_0_0_1_Linux_x86_2_of_3.tar.gz

BAW_18_0_0_1_Linux_x86_3_of_3.tar.gz

Notes: To ensure that the downloaded images are recognized by the scripts, they must be named the same as the *.tar.gz files.
Interim fixes X86_64 [ibm_sw_repo]/workflow/ifixes
Fix packs X86_64 [ibm_sw_repo]/workflow/fixpacks
The full names of the Workflow and WAS fix pack installation packages

workflow.19002.delta.repository.zip

8.5.5-WS-WAS-FP015-part1.zip; 8.5.5-WS-WAS-FP015-part2.zip; 8.5.5-WS-WAS-FP015-part3.zip

Database Drivers
[ibm_sw_repo]/workflow/drivers
The JDBC drivers for your Oracle database server, such as ojdbc6.jar, ojdbc7.jar, or ojdbc8.jar.

For example, the oracle jdbc driver:
ojdbc7.jar
  1. Check that you have the following prerequisites:

    Database server
    For the IBM Business Automation Workflow Enterprise V19 on a single virtual machine scenario, you can install the database server before you install IBM Business Automation Workflow or as part of the product installation.
    For the IBM Business Automation Workflow Enterprise V19 on multiple virtual machines scenario, you must install the database server before you install IBM Business Automation Workflow.
    If you install the database server before you install IBM Business Automation Workflow, follow the instructions for your database type:
    DB2 database
    To create the required databases, follow the instructions in Creating Db2 databases:

    Database Database name
    Common database CMNDB
    Process database BPMDB
    Performance Data Warehouse database PDWDB
    Content database CPEDB
    Schema/Table space Schema/Table space name
    The schema for IBM Content Navigator (ICN) ICNSA
    The table space for IBM Content Navigator (ICN) WFICNTS
    The schema for the design object store (DOS) DOSSA
    The data table space for the design object store (DOS) DOSSA_DATA_TS
    The large object table space for the design object store (DOS) DOSSA_LOB_TS
    The index table space for the design object store (DOS) DOSSA_IDX_TS
    The schema for the target object store (TOS) TOSSA
    The data table space for the target object store (TOS) TOSSA_DATA_TS
    The large object table space for the target object store (TOS) TOSSA_LOB_TS
    The index table space for the target object store (TOS) TOSSA_IDX_TS

    Oracle database
    To create the following required databases and users, follow the instructions in Running the generated Oracle database scripts:

    Database Schema/Database users
    Shared database cmnuser
    Cell database celluser
    Process Server database psuser
    Performance Data Warehouse database pdwuser
    IBM Content Navigator database icnuser
    Design Object Store database dosuser
    Target Object Stare database tosuser
    Table space Table space name
    The table space for IBM Content Navigator (ICN) WFICNTS
    The data table space for the design object store (DOS) DOSSA_DATA_TS
    The data table space for the target object store (TOS) TOSSA_DATA_TS
    For the AdvancedOnly Configuration Product Type, you need only the SharedDb and CellOnlyDb schemas.

Running the script

Script root directory:

<Your chef-repo directory>/Workflow_Chef

Prepare properties

Before you run a script (*.sh), you must configure the password encryptioon method you are using in the properties files (*.properties). You can use one of the following methods:

  • Fill in the Base64-encrypted passwords in the properties file. The program generates and uses the Chef vault with those passwords automatically at runtime.

  • Use an existing Chef Vault on the Chef server. You do not need fill in the passwords in the properties file but you must create a Chef vault and fill the information in the Optional: Existing Chef Vault section in the properties file manually ahead of time. Use one of the following JSON templates to create the Chef vault:

    • Template for a fresh installation:

      <Workflow_Chef_ROOT>/templates/chef_vault_json/workflow_secrets_fresh_install.json

    • Template for applying an interim fix or an upgrade:

      <Workflow_Chef_ROOT>/templates/chef_vault_json/workflow_secrets_applyifix_upgrade.json

    Replace the JSON vault with your own passwords (do not delete any JSON keys), then use the following knife vault to create the Chef vault on the Chef Server:

    knife vault create <workflow_chef_vault_name> <workflow_chef_vault_item> --json <the json file like workflow_secrets_fresh_install.json> --mode client
    knife vault delete <workflow_chef_vault_name> <workflow_chef_vault_item> --mode client

More information about Chef vault: https://docs.chef.io/chef_vault.html

Running the scripts

After you prepare the properties file, you can run the corresponding shell script (*.sh).

Notes: The execute permission for the shell script (*.sh) must be granted in advance.

For example:

<Project_ROOT>/singlenode/baw_singlenode_fresh_install.sh

Generated roles and logs

Notes: "hostname2, hostname3, hostname4, hostname5, hostname6, hostname7" are examples, they should be the host short names which you used for the deployment.

The directory structure of the generated roles

/tmp/baw_chef_shell_tmp/
├── multinodes
│   ├── hosts_hostname2_hostname3_roles
│   │   ├── apply_ifix
│   │   ├── fresh_install
│   │   └── upgrade
│   └── hosts_hostname5_hostname6_roles
│       ├── apply_ifix
│       ├── fresh_install
│       └── upgrade
└── singlenode
    ├── host_hostname4_roles
    │   ├── apply_ifix
    │   ├── fresh_install
    │   └── upgrade
    └── host_hostname7_roles
        ├── apply_ifix
        ├── fresh_install
        └── upgrade

The directory structure of the generated logs

/var/log/baw_chef_shell_log/
├── multinodes_noihs
│   ├── hosts_hostname2_hostname3
│   │   ├── apply_ifix
│   │   ├── fresh_install
│   │   └── upgrade
│   └── hosts_hostname5_hostname6
│       ├── apply_ifix
│       ├── fresh_install
│       └── upgrade
└── singlenode
    ├── host_hostname4
    │   ├── apply_ifix
    │   ├── fresh_install
    │   └── upgrade
    └── host_hostname7
        ├── apply_ifix
        ├── fresh_install
        └── upgrade

License Information

See the License folder for more information about how this project is licensed.

workflow_chef's People

Contributors

bjwhtao avatar kangyangky avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.