3.4. Silently Installing the JBoss ON Server

The initial setup of the server is the same as in Section 3.3, “Configuring the Server with the Web Installer”. Instead of using the visual, web-based installer, however, a silent installation loads a pre-configured properties file and starts the server with all of its configuration in place.
  1. Stop any currently running JBoss ON instances.
    [root@server ~]# serverRoot/jon-server-3.1.2.0.GA1/bin/rhq-server.sh stop

    Warning

    If the new JBoss ON server will use a database that existing JBoss ON instances are also using, then all of the existing JBoss ON instances have to be stopped. Otherwise, the installer will hang when it tries to contact the database and the database is unavailable because it is in use by another JBoss ON server.
  2. Download the JBoss ON binaries from the Customer Support Portal.
    1. In the Customer Support Portal, click Software, and then click the Product drop-down box arrow to open the JBoss Operations Network software download.
    2. Download the JBoss Operations Network 3.1.2 Base Distribution package by clicking the Download icon.
    3. There are additional plug-in packs available for EDS, EAP, EWS, and SOA-P. If any of those plug-ins will be used with the JBoss ON server, then download them as well.
  3. Unzip the server distribution to the directory from where it will be executed.
    [root@server ~]# cd /opt
    
    [root@server ~]# unzip jon-server-3.1.2.0.GA1.zip
  4. Install the agent plug-ins.
    [root@server ~]# unzip jon-plugin-pack-agent_plugin_name-3.1.2.0.GA1.zip
    [root@server ~]# cd /opt/jon/jon-server-3.1.2.0.GA1/plugins
  5. Open the JBoss ON server configuration properties file:
    [root@server ~]# vim serverRoot/jon-server-3.1.2.0.GA1/bin/rhq-server.properties
  6. Set the rhq.autoinstall.enabled parameter to true to instruct the server to load the configuration automatically from file.
    rhq.autoinstall.enabled=true
  7. Set the parameter to tell the server whether preserve the any existing data in the database. For a new installation, this can be set to auto so the installer will supply the database schema. If a JBoss ON server has been installed before so that there is existing data in the database, then this can be set to overwrite, to apply the new schema.
    rhq.autoinstall.database=auto

    Important

    The autoinstaller options are only evaluated once, when the JBoss ON server is first installed. After that initial configuration, the autoinstaller is disabled. These properties are ignored once the server is set up and cannot be used to initiate a re-install of an existing instance.
  8. Optionally, set the IP address or hostname for the server. If this is not set, then the server will detect it when it starts.
    rhq.autoinstall.public-endpoint-address=server1.example.com
  9. Set the port numbers for the instance.
    rhq.server.startup.web.http.port=7080
    rhq.server.startup.web.https.port=7443
  10. Set the username and password to connect to the backend database. The password is stored in the properties file in an encoded form. Use the generate-db-password.sh script to hash the password.
    serverRoot/jon-server-3.1.2.0.GA1/bin/generate-db-password.sh mypassword
    Encoded password: 1d31b70b3650168f79edee9e04977e34
    Then, set the hashed password as the rhq.server.database.password value.
    rhq.server.database.user-name=rhqadmin
    rhq.server.database.password=1d31b70b3650168f79edee9e04977e34
  11. Scan the rest of the database configuration to make sure that it corresponds to your specific database type and instance. The parameters, and some possible values for PostgreSQL and Oracle databases, are described in Table 3.1, “rhq-server.properties Parameters for Database Configuration”.
    # Database
    rhq.server.database.connection-url=jdbc:postgresql://127.0.0.1:5432/rhq
    rhq.server.database.driver-class=org.postgresql.Driver
    rhq.server.database.xa-datasource-class=org.postgresql.xa.PGXADataSource
    rhq.server.database.type-mapping=PostgreSQL
    rhq.server.database.server-name=127.0.0.1
    rhq.server.database.port=5432
    rhq.server.database.db-name=rhq
    hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
    
    # Quartz
    rhq.server.quartz.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
    rhq.server.quartz.selectWithLockSQL=SELECT * FROM {0}LOCKS ROWLOCK WHERE LOCK_NAME = ? FOR UPDATE
    rhq.server.quartz.lockHandlerClass=org.quartz.impl.jdbcjobstore.StdRowLockSemaphore
  12. Start the JBoss ON server:
    [root@server ~]# serverRoot/jon-server-3.1.2.0.GA1/bin/rhq-server.sh start
When the server starts, it loads the edited rhq-server.properties file and is fully configured.

Table 3.1. rhq-server.properties Parameters for Database Configuration

Parameter Description
rhq.server.database.type-mapping Gives the type or vendor of the database that is used by the JBoss ON server. This is either PostgreSQL or Oracle.
rhq.server.database.connection-url The JDBC URL that the JBoss ON server uses when connecting to the database. This has the format (roughly) of jdbc:db-type:hostname:port[:|/]db-name. An example is jdbc:postgresql://localhost:5432/rhq or jdbc:oracle:oci:@localhost:1521:orcl.
rhq.server.database.driver-class The fully qualified class name of the JDBC driver that the JBoss ON server uses to communicate with the database. An example is oracle.jdbc.driver.OracleDriver.
rhq.server.database.xa-datasource-class The fully qualified class name of the JDBC driver that the JBoss ON server uses to communicate with the database. Examples of this are org.postgresql.xa.PGXADataSource or oracle.jdbc.xa.client.OracleXADataSource.
rhq.server.database.user-name The name of the user that the JBoss ON server uses when logging into the database
rhq.server.database.password The password of the database user that is used by the JBoss ON server when logging into the database. This password is stored in a hash.
rhq.server.database.server-name The server name where the database is found. This must match the server in the connection URL. This is currently only used when connecting to PostgreSQL.
rhq.server.database.port The port on which the database is listening. This must match the port in the connection URL. This is currently only used when connecting to PostgreSQL.
rhq.server.database.db-name The name of the database. This must match the name found in the connection URL. This is currently only used when connecting to PostgreSQL.
rhq.server.quartz.driverDelegateClass The Quartz driver used for connections between the server and the database. The value of this is set by the installer and depends on the type of database used to store the JBoss ON information. For PostgreSQL, this is org.quartz.impl.jdbcjobstore.PostgreSQLDelegate, and for Oracle, this is org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.