In this section:

Introduction

The Data Repository Scripts provide scripts for configuring and running a MongoDB Server as a data repository for use with SOAtest and Virtualize. These scripts support MongoDB versions 3.6 - 5.0; other versions of MongoDB are not supported by these scripts.

Using Your Own MongoDB Installation

If you already have MongoDB installed and want to use it with Parasoft products, you will need to download the Data Repository Pack from the Parasoft Marketplace.

Please note that this applies to MongoDB versions 3.6 and later; these assets should not be used with older versions. If you have an older version installed, upgrade to a newer version or download the distribution zip file provided by Parasoft by following the directions found on the Installing a Remote Data Repository Server page.

MongoDB does NOT need to be on the same machine where you are running a Parasoft product.

Configuring MongoDB with Data Repository Scripts

To set up your MongoDB installation for use with Parasoft products using the scripts included with the Data Repository Pack, do the following:

  1. Extract the Parasoft_SOAVirt_Data_Repository_Scripts_Pack.zip file found in the Data Repository Pack downloaded previously to a location of your choice and open it.
  2. Locate the script folder for your operating system (for example, Windows users would locate win-scripts).
  3. Copy that scripts folder into the root folder of your MongoDB installation and open it.
  4. Start the server by running server.bat (Windows) or server.sh (MacOS and Linux).
  5. Create a new user using the user.bat (Windows) or user.sh (MacOS and Linux). See Additional Information.
  6. (Optional) Register the server to CTP using the register.bat (Windows) or register.sh (MacOS and Linux).
  7. Verify that the server is running by opening <host>:<port> in a browser window, for example, localhost:2424. You should see the following message:

You can stop the repository server in Windows by pressing CTRL+C in the console or by running ./server.sh stop on MacOS/Linux.

Configuring MongoDB Installations Done by a Package Manager

To set up a MongoDB installation done by a package manager for use with Parasoft products, you need to update the mongod.conf file (MacOS/Linux) or mongod.cfg file (Windows) in the MongoDB installation. Configure the net settings as appropriate for your environment and the security settings to enable authorization. For example:

# network interfaces
net:
  port: 2424
  bindIpAll: true
  ipv6: true
  #ssl:
     #mode: requireSSL
     #PEMKeyFile: selfsigned.pem

# security
security:
   authorization: enabled

You also need to set up the required authentication. See https://www.mongodb.com/docs/manual/tutorial/configure-scram-client-authentication/ for more information about authentication in MongoDB.

An example user is shown below. Note that the specific roles are required.

db.createUser(
  {
    'user' : 'admin',
    'pwd' : passwordPrompt(), // or cleartext password
    roles: [
      {'role' : 'root', 'db' : 'admin'}
    ]
  }
)

Configuring Remote Data Repository Server to Use SSL

You can configure your remote data repository server to use SSL. It is not enabled by default, so you will need to follow the steps outlined below. Note that this procedure only applies to Windows and Mac installations; Linux users will need to install a distribution-specific version of MongoDB and follow the configuration directions from MongoDB.

  1. Create a self-signed certificate and save that certificate to the root directory of the Data Repository Server folder.
  2. Update the server.conf file in the /scripts folder of your Data Repository Server directory. An example of the server.conf file with SSL options enabled is shown below. Consult the MongoDB configuration documentation for full configuration details (link provided in the server.conf file). Note that if you need to modify the example file or choose to manually modify your server.conf file, be conscious of the importance of proper spacing; you must use spaces, not tabs.
  3. Start the server by running server.bat (Windows) or server.sh (MacOS).
Example of server.conf with SSL
### See https://www.mongodb.com/docs/v3.6/reference/configuration-options/
### Path references are resolved relative to the environment's current directory

net:
   port: 2424
   bindIpAll: true
   ipv6: true
   ssl:
      mode: requireSSL
      PEMKeyFile: selfsigned.pem
security:
   authorization: enabled
storage:
   dbPath: repositories
systemLog:
   quiet: true
   path: logs/repo.log
   destination: file

Additional Information

  • You only need to run the user script (user.bat for Windows or user.sh for MacOS and Linux) the first time the server is started in order to create a username and password for authentication. Once the user credentials are created, the user script does not need to be run again unless you wish to update/validate the user credentials.
  • If you later (after the initial start) want to change the credentials used to authenticate with the Data Repository Server, you can do that with the user script. The server must be started to apply the changes.
  • To register the Data Repository Server with Parasoft Test Data in CTP, you will need to run the register script (register.bat for Windows or register.sh for MacOS and Linux).
  • When installing a data repository server on Linux or MacOS, take the ulimit parameter on your server into consideration. Since data repository servers can cause many files to be open at the same time, if the ulimit is set too low errors can occur.
  • Linux users: if you want to start/stop the data repository server from an init.d script, have the init.d script call the server shell (server.sh) in the scripts folder, passing the arguments through and with the right user for your environment.

Advanced Configuration via the server.conf File

The server.conf file determines settings, such as the data repository server port (default is 2424), IPv6 connectivity, SSL options, and so on. If you want to modify the default settings, edit the server.conf file. Changes will take effect when the server is restarted.

Automating Deployment with the Init Script

One script that is included in your download is init.bat (Windows) or init.sh (MacOS or Linux). This initialization script exposes command-line arguments in which you can pass various inputs that would otherwise require an interactive input, simplifying an automated deployment of the data repository server. The examples below show the arguments that are passed to initialize user credentials as well as the optional arguments for registering CTP. Note that the init.bat/sh script uses settings from the default server.conf file, in particular defaulting to port 2424 and non-SSL. If you have edited the server.conf file, you will need to deploy the data repository server manually by running the server.bat/sh, user.bat/sh and (optionally) register.bat/sh scripts yourself.

Windows
init.bat --username <USER> --password <PWD> [--ctp-url <CTP_URL> --ctp-username <CTP_USER> --ctp-password <CTP_PWD>] [--alias <ALIAS>]
MacOS/Linux
init.sh --username <USER> --password <PWD> [--ctp-url <CTP_URL> --ctp-username <CTP_USER> --ctp-password <CTP_PWD>] [--alias <ALIAS>]

  • No labels