GithubHelp home page GithubHelp logo

redhat-cop / jboss_eap Goto Github PK

View Code? Open in Web Editor NEW
30.0 17.0 48.0 65 KB

[DEPRECATED] - Ansible role to install JBoss EAP

License: Apache License 2.0

Python 25.33% Jinja 74.67%
ansible-middleware automation-cop

jboss_eap's Introduction

DEPRECATED - This repository is no longer maintained

Capabilities provided by this repository have migrated to the ansible-middleware project and specifically the wildfly repository.

Ansible JBoss EAP Role Build Status

A role to install JBoss Enterprise Application Platform on RHEL7. Intended to be used with JBoss Middleware Playbooks

Transfer Method

This role supports a few different mechanism for transferring the product zip files to the target host. These are documented on the main playbooks README, as the methods are supported across a variety of roles.

Dependencies

  • java
  • unzip

Our playbooks provide these dependencies in a common role, but this there is no explicitly ansible dependency to allow end users more options.

JBoss Instance Customization

JBoss instances can be customized on a per host/group basis by modifying the jboss_instance property. By default, a single standalone instance is deployed with HTTP and Management interfaces exposed to all interfaces.

jboss_instances:
  - name: standalone

There are several ways in which you can customize the JBoss instances as described below.

  • Create a single instance called standalone which does not publicly expose the Management interface
jboss_instances:
  - name: standalone
    bind_management_address: 127.0.0.1
  • Create multiple instances on the same machine with a port offset of 100
jboss_instances:
  - name: node1
  - name: node2
    port_offset: 100

Example Playbooks

License

LICENSE

Authors Information

jboss_eap's People

Contributors

garethahealy avatar hcherukuri avatar kameshsampath avatar rpelisse avatar sabre1041 avatar sherl0cks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jboss_eap's Issues

Patching error when rerunning playbook

When rerunning the playbook, received the following error

TASK: [jboss_eap | Apply JBoss EAP Patch] ************************************* 
failed: [192.168.56.198] => {"changed": true, "cmd": ["/opt/jboss-as/jboss-eap-6.4/bin/jboss-cli.sh", "patch apply /tmp/jboss-eap-6.4.7-patch.zip"], "delta": "0:00:11.784276", "end": "2016-05-05 20:00:49.623511", "rc": 1, "start": "2016-05-05 20:00:37.839235", "warnings": []}
stdout: patching exception

FATAL: all hosts have already failed -- aborting

Miscellaneous Issues

The following issues are found after testing the role

  1. Author links broken in README

    1. Andrew Block
    2. Albert Wong
  2. BPM reference in defaults

    Installs a BPM Suite via Red Hat internal downloads

  3. JBoss EAP artifact repository link not valid

    1. The following error is thrown:
TASK: [jboss_eap | Download JBoss EAP from Red Hat Customer Portal] *********** 
failed: [eap] => {"dest": "/tmp/jboss-eap-6.4.0.zip", "failed": true, "response": "HTTP Error 410: Gone", "state": "absent", "status_code": 410, "url": "https://access.redhat.com/cspdownload/c0b50c2aa9f906dc202afb44b029bea4/570c62e4/JBEAP-6.4.0/jboss-eap-6.4.0.zip"}
msg: Request failed

FATAL: all hosts have already failed -- aborting

Having EAP Control Script

Shall we have eapctl.sh in cases where we don't have EAP installed as service and set the bind-address and other settings we do right now in the jboss_eap/main.yml.

Problem by configure JBoss EAP 6.x as Service on RHEL 7

I recently upgrade the RHEL6 to RHEL7. But I still have to use the Jboss EAP6 for a while. After upgrate to RHEL7 I have problem by starting the jboss since by RHEL7 it works quite different than by RHEL6. One has to use the 'systemctl'. I've googled but couldn't find any helpful information.

After installed the Jboss EAP6 there is a file /etc/init.d/jbossas. I enable this as service with
chkconfig jbossas on

Then I create a file '/usr/lib/systemd/system/eap6-jbossas-standalone.service' and it looks as below:
`[Unit]
Description=JBoss EAP Systemctl script
After=NetworkManager.service

[Service]
Type=forking
ExecStart=/etc/init.d/jbossas start
ExecStop=/etc/init.d/jbossas stop
PIDFile=/var/run/jbossas/jbossas-standalone.pid`

Then I start the jboss with
systemctl start eap6-jbossas-standalone

The jboss can be started but the cursor doesn't return. I have to use the ctrl+c to get the cursor.

I try to stop the jboss with
systemctl stop eap6-jbossas-standalone

but the jboss can not be stopped. As I check its status with
systemctl status eap6-jbossas-standalone -l

I got following messages:
`# systemctl status eap6-jbossas-standalone -l
โ— eap6-jbossas-standalone.service - JBoss EAP Systemctl script
Loaded: loaded (/usr/lib/systemd/system/eap6-jbossas-standalone.service; static; vendor preset: disabled)
Active: inactive (dead)

Aug 28 10:04:59 s001ap21-test-n.ad001.proactiv.grp systemd[1]: Failed to start JBoss EAP Systemctl script.
Aug 28 10:04:59 s001ap21-test-n.ad001.proactiv.grp systemd[1]: Unit eap6-jbossas-standalone.service entered failed state.
Aug 28 10:04:59 s001ap21-test-n.ad001.proactiv.grp systemd[1]: eap6-jbossas-standalone.service failed.
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp systemd[1]: Starting JBoss EAP Systemctl script...
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp runuser[15400]: pam_unix(runuser:session): session opened for user jboss by (uid=0)
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp runuser[15400]: pam_unix(runuser:session): session closed for user jboss
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp runuser[15403]: pam_unix(runuser:session): session opened for user jboss by (uid=0)
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp runuser[15403]: pam_unix(runuser:session): session closed for user jboss
Aug 28 10:15:24 s001ap21-test-n.ad001.proactiv.grp jbossas[15384]: Starting jbossas: runuser: warning: cannot change directory to /opt/rh/eap7/root/usr/share/wildfly: No such file or directory
Aug 28 10:15:52 s001ap21-test-n.ad001.proactiv.grp systemd[1]: Stopped JBoss EAP Systemctl script.
jboss6.x rhel7`

P.S.: I installed the Jboss EAP 6.4.22 byusing the text rpm:
yum groupinstall "jboss eap 6"

CSP Download URL Is Not Always Accurate

From #2:

JBoss EAP artifact repository link not valid

The following error is thrown:

TASK: [jboss_eap | Download JBoss EAP from Red Hat Customer Portal] *********** 
failed: [eap] => {"dest": "/tmp/jboss-eap-6.4.0.zip", "failed": true, "response": "HTTP Error 410: Gone", "state": "absent", "status_code": 410, "url": "https://access.redhat.com/cspdownload/c0b50c2aa9f906dc202afb44b029bea4/570c62e4/JBEAP-6.4.0/jboss-eap-6.4.0.zip"}
msg: Request failed
FATAL: all hosts have already failed -- aborting

Starting JBoss as service fails

When provisioning JBoss EAP 6.4.0 and patching to 6.4.7 on a samdoran/rhel7 bos via vagrant 2.2, the playbook continuesly fails at the task "Enable jboss-as Service".

I am using samdoran/rhel7 as box and for Java provisioning I use the role "williamyeh.oracle-java".

It seems the service to be started is "jboss-as-standalone.sh" but systemctl requires the service name wihtout trailing ".sh".

Please find attached the Ansible verbose output log
jbossEnableServiceIssue.txt

Handling Firewall Ports ?

the usual problem i have seen with customers using EAP/FUSE/BxMS is to know the ports that they have to open in firewall post the installation. do you all think we need to open the right safe ports as part of the playbook - so that the customer or users of our playbooks knows which product and what port needs to be opened ?

I personally think we open up the basic ports and then leave the customer to modify the role vars to add/delete the ports that he wants to open/block, the below ones I used for EAP + EWS + JON setup, pulled the port list form the respective user/admin guides

HTTP Error 404: Cannot pull dependency role

ansible-galaxy install redhat-cop.jboss_eap

Role Doc Improvement

improving the Role level documentation to add the following information:

  • info on role variables
  • any facts that are set during the play

Define a structure for configuring JBoss Instances

Allow for a structure to be provided to define the configuration of JBoss instances

Something similar to the following

jboss_instances:
  - name: jboss
    port_offset: 0
    jboss_resources:
        - jboss_resource:
            name: "/subsystem=datasources/data-source=DemoDS"
            state: present
            attributes:
              driver-name: h2
              connection-url: "jdbc:h2:mem:demo;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
              jndi-name: "java:jboss/datasources/DemoDS"
              user-name: sa
              password: sa
              min-pool-size: 20
              max-pool-size: 40
  - name: jboss2
     port_offset: 100


Tagging Roles

Tagging of roles, which will allow galaxy to publish the same as versions of the roles via galaxy

New Release?

It looks like there has been significant new work merged to master since the last release, are there plans to do another official release soon?

Make JBoss Conf as Template

Making JBoss standalone service configuration as template to allow JVM and other configurations pushed as part of the play

Allowing absolute and relative path for copy-from-controller

Right now the copy-from-controller setting for transfer_method looks for the archive in the current directory of the controller machine from where the ansible is run, and hence the task

- name: Copy JBoss EAP
  copy:
    src: "{{ jboss_eap_artifact_name }}"
    dest: "{{ jboss_eap_artifact_dl_dest }}"
  tags:
    - jboss_eap
  when: transfer_method == 'copy-from-controller' and jboss_eap_exists.stat.exists == false

fails if we give a path like /mypath/softwares/jboss-eap-6.4.zip

Web and Management Bind Address

Right now the Web and Management Bind Address are set to 0.0.0.0, Issue #34 added two variables jboss_eap_bind_web_address and jboss_eap_bind_management_address set to 0.0.0.0. This needs to be set to the ansible host IP address for better security while provisioning, adhering to JBoss guide defaulting to localhost for bind

Move to pure init.d Scripts

It's what is supported in the docs for EAP 6 & 7. Current impl uses systemd service to delegate to init.d scripts

Creation of Galaxy user

Creating Ansible galaxy user for RH consulting, which will allow us to publish the roles from rhconsultling/jboss_eap repo

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.