Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

Chapter 4. Launching non-clustered managed domain

4.1. Launch an Instance to Serve as a Domain Controller

This topic lists the steps to launch a non-clustered JBoss EAP managed domain on a Red Hat AMI (Amazon Machine Image).

Pre-requisite

Launch a Non-Clustered JBoss EAP Instance

Note

You can connect to an EC2 instance through ssh as the ec2-user user. If you need administrative privileges, you can change to root later. For example,

$ ssh -l ec2-user ${INSTANCE_PUBLIC_IP}
...
$ sudo su -
  • Launch the Red Hat AMI instance.

    A non-clustered instance of JBoss EAP has been configured, and launched on a Red Hat AMI.

  • To configure JBoss EAP, you can pass arguments to the service directly. Some arguments may not be handled in this way. The location of the service configuration files is:

    • RHEL 6: /etc/sysconfig/eap7-domain
    • RHEL 7: /etc/opt/rh/eap7/wildfly/eap7-domain.conf
    Note
    • For system path details, see System Paths.
    • For information about configuring JBoss EAP subsystems for Amazon EC2, see Configuring JBoss EAP Subsystems to Work on Cloud Platforms.
    • For complex configuration, you can either use the domain.conf file in the JBoss EAP bin directory: /opt/rh/eap7/root/usr/share/wildfly/bin/, or you can start the JBoss EAP service and configure the server using the management CLI. The script can be found in the bin directory. Then, reload the configuration.
    • yum -y update should be run regularly, to apply security fixes and enhancements.
  • To start JBoss EAP on RHEL 6, run the following command:

    $ service eap7-domain start

    To start JBoss EAP on RHEL 7, run the following command:

    $ systemctl start eap7-domain
  • To stop JBoss EAP, run the following command:

    $ service eap7-domain stop

    Or

    $ systemctl stop eap7-domain
Note

systemctl command is relevant to only RHEL 7.

Note

If you want to bind JBoss EAP to a different IP address, add the following line in the /etc/opt/rh/eap7/wildfly/eap7-domain.conf file on RHEL 7. The internal IP address is translated into a public IP address by EC2.

WILDFLY_BIND=$YOUR_PRIVATE_IP_ADDRESS

4.2. Launch One or More Instances to Serve as Host Controllers

This topic lists the steps to launch one or more instances of JBoss EAP to serve as non-clustered host controllers on a Red Hat AMI.

Configure and launch the non-clustered domain controller. Refer to Launch an Instance to Serve as a Domain Controller.

Note

For Domain Controller Instance

For a managed domain running on Amazon EC2, in addition to static domain controller discovery, host controllers can dynamically discover a domain controller using the Amazon S3 storage system. In particular, host controllers and the domain controller can be configured with information needed to access an Amazon S3 bucket.

Using this configuration, when a domain controller is started, it writes its contact information to an S3 file in the bucket. Whenever a host controller attempts to contact the domain controller, it gets the domain controller’s contact information from the S3 file.

This means that if the domain controller’s contact information changes, for example, it is common for an EC2 instance’s IP address to change when it is stopped and started, the host controllers do not need to be reconfigured. The host controllers are able to get the domain controller’s new contact information from the S3 file.

Note

To know more about sample script for user data, see Example User Data for Clustered JBoss EAP Instances

The manual domain controller discovery configuration is specified using the following properties:

  • access-key: The Amazon AWS user account access key.
  • secret-access-key: The Amazon AWS user account secret access key.
  • location: The Amazon S3 bucket to be used.

    1. Copy the domain-ec2.xml file from /etc/opt/rh/eap7/jboss-ec2-eap/domain to the JBoss EAP configuration directory.
    2. Set the following variables in the appropriate service configuration file:

      WILDFLY_SERVER_CONFIG=domain-ec2.xml
      WILDFLY_HOST_CONFIG=host-master.xml
    3. Add S3 domain controller discovery configuration to the domain-ec2.xml file:

      <local>
          <discovery-options>
              <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery">
                  <property name="access-key" value="S3_ACCESS_KEY"/>
                  <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/>
                  <property name="location" value="S3_BUCKET_NAME"/>
              </discovery-option>
          </discovery-options>
      </local>