Tuesday, May 1, 2018

Ansible automation for WebLogic - Part 2: Unarchive and Copy WebLogic installers

This post is continuous learning "Ansible automation for WebLogic" series. If you are not read the previous post please go through it which will be telling you that Java installation using Ansible. That same play book you can use it for CPU patches. The objective of this post is to use the ansible playbook for unzip the WebLogic installer and run the silent mode installer. As we have explored in the last post unarchive module used for the Java installer which had tar.gz extension.  There are multiple modules in ansible which are very powerful. In this post I would like to share my experiments with the following:

  1. unarchive module
  2. copy module
Unarchive module in Ansible

We can use the unarchive module for Zip files and also for tar.gz files. When we use this module need to provide the src, dest values that is source and destination. This module automatically copies the zip file and unzip it in the remote

The copy module in Ansible
The copy module is works similar to scp in Linux it will copy the specified files in the source to destination. We can copy multiple files to remote machine with_item option. You need to provide the list of filenames that need to copy in the list.

WebLogic response file, OraInv.loc and zip file to remote boxes using ansible modules


Working in preparation of WebLogic development environments, where we need to use the WebLogic quick installer is around 230 megabytes in size. We choose this installer because which is most preferable installer for docker clusters and virtualization implementation environments or cloud environments. After download from the Oracle site, First we need to unzip the installer.

The response file
Now lets create the silent response file for WebLogic.
[ENGINE]
Response File Version=1.2.0.0.0
[GENERIC]
ORACLE_HOME=/home/vagrant/fmw
INSTALL_TYPE=WebLogic Server
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

The oraInst.loc file

inst_group=vagrant
inventory_loc=/home/vagrant/oraInventoy


Lets copy and enhancing the existing playbook file added WebLogic specific installer and silent response file, oraInv.loc files


vi wls_ins_fcp.yml
---
- hosts: appservers
  remote_user: vagrant
  tasks:
   - name: Unpack archive
     unarchive:
        src: /u01/app/software/jdk/jdk-8u172-linux-x64.tar.gz
        dest: /home/vagrant
        remote_src: yes
   - name: WebLogic Software unzip
     unarchive:
        src: /u01/app/software/FMW_wls/fmw_12.2.1.3.0_wls_quick_Disk1_1of1.zip
        dest: /tmp
   - name: Copy install script and properties
     copy:
        src: ~/wls-auto/{{ item }}
        dest: /tmp
        mode: "a+r"
     with_items:
        [wls_install.rsp,oraInst.loc]

Now run the playbook
vagrant@docking ~/wls-auto $ ansible-playbook -i ~/hosts wls_ins_fcp.yml

PLAY [appservers] **************************************************************

TASK [Gathering Facts] *********************************************************
ok: [192.168.33.102]
ok: [192.168.33.100]

TASK [Unpack archive] **********************************************************
ok: [192.168.33.102]
ok: [192.168.33.100]

TASK [WebLogic Software unzip] *************************************************
changed: [192.168.33.100]
changed: [192.168.33.102]

TASK [Copy install script and properties] **************************************
ok: [192.168.33.100] => (item=wls_install.rsp)
ok: [192.168.33.102] => (item=wls_install.rsp)
ok: [192.168.33.100] => (item=oraInst.loc)
ok: [192.168.33.102] => (item=oraInst.loc)

PLAY RECAP *********************************************************************
192.168.33.100             : ok=4    changed=1    unreachable=0    failed=0
192.168.33.102             : ok=4    changed=1    unreachable=0    failed=0

No two programs will be same each one can differently to achieve the same task. Lets confirm the execution of the above ansible playbook.
WebLogic installer, response file, oraInst.loc file into remote /tmp 


Next we will be work with the above files to install the WebLogic in remote machines using Ansible.

Expecting your feedback  in the comment section to improve ourself to give much better solutions.

References

  1. Unarchive module
  2. Copy module

2 comments:

  1. Thanks, it's good automation process.. Can possible to write ansible yml file just to run restart weblogic instances?

    ReplyDelete
  2. yes it is possible you just need to use command module.

    ReplyDelete

Blurb about this blog

Blurb about this blog

Essential Middleware Administration takes in-depth look at the fundamental relationship between Middleware and Operating Environment such as Solaris or Linux, HP-UX. Scope of this blog is associated with beginner or an experienced Middleware Team members, Middleware developer, Middleware Architects, you will be able to apply any of these automation scripts which are takeaways, because they are generalized it is like ready to use. Most of the experimented scripts are implemented in production environments.
You have any ideas for Contributing to a Middleware Admin? mail to me wlatechtrainer@gmail.com
QK7QN6U9ZST6