You can configure Rundeck to use a RDB instead of the default file-based data storage.
You must modify the
server/config/rundeck-config.properties file, to change the
dataSource configuration, and you will have to add the appropriate JDBC driver JAR file to the lib directory.
First, you must enable the
#note, make sure this is set to "true" if you are using Oracle or Mysql rundeck.v14.rdbsupport=true
This makes Rundeck use table/field names that are compatible with Oracle/Mysql.
Note: It is safe to set this to true if you are using the default file based backend, but only for a fresh install. It will cause a problem if you set it to true for an existing Rundeck 1.3 HSQLDB database. Make sure it is set to "false" or is absent from your config file if you are upgrading from Rundeck 1.3 and using the filesystem storage.
The default dataSource is configured for filesystem storage using HSQLDB:
dataSource.url = jdbc:hsqldb:file:/var/lib/rundeck/data/grailsdb;shutdown=true
Here is an example configuration to use an Oracle backend:
dataSource.url = jdbc:oracle:thin:@localhost:1521:XE dataSource.driverClassName = oracle.jdbc.driver.OracleDriver dataSource.username = dbuser dataSource.password = dbpass dataSource.dialect = org.hibernate.dialect.Oracle10gDialect
Here is an example configuration to use Mysql:
dataSource.url = jdbc:mysql://myserver/rundeckdb?autoReconnect=true dataSource.username = dbuser dataSource.password = dbpass
NB: for Mysql, the
autoReconnect=true will fix a common problem where the Rundeck server's connection to Mysql is dropped after a period of inactivity, resulting in an error message: "Message: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost."
See more about configuring the Mysql JDBC Connector/J URL.
Copy the appropriate JDBC driver, such as "ojdbc14.jar" for Oracle into the server
cp ojdbc14.jar $RDECK_BASE/server/lib
cp mysql-connector-java-5.1.17-bin.jar $RDECK_BASE/server/lib