In Delphix, an environment is either a single instance host or cluster of hosts that run database software. For example, a Linux system running Postgres. This may either be an individual instance, or a cluster like Oracle RAC. Environments can either be a source (where data comes from), staging (where data are prepared/masked) or target (where data are delivered and used by developers and testers).
Each environment has its own properties and information depending on the type of environment it is. In this section, you can learn about how to add environments to Delphix as well as what attributes and configurations that environments have.
Environment Attributes and Configurations
This topic describes the attributes of an environment such as name, host address, ssh port, or toolkit path. For more advanced attributes for specific data platforms, please navigate to that data platform’s documentation section.
The user(s) for the environment. These are the users who have permission to ssh into an environment (Unix-based environments) or access the environment through the Delphix Connector (Windows-based environments).
The fully qualified domain name or IP address for the environment.
NFS Addresses (Unix-based hosts only)
A list of IP addresses to be used for NFS mount for this environment.
If left empty, Delphix will automatically use the Host Address parameter above for NFS requests
Delphix Session Protocol (DSP) Configurations
If an environment already exists after enabling server/client DSP authentication, you will need to modify its attributes for host communication to continue working, you will need to set up the appropriate stores on the remote host.
Environment port used for SSH, usually port 22. This parameter is only used for Unix-based environments.
Location of the toolkit. For Windows hosts, this will be specified once installing the Delphix Windows Connector.
Location of the Java Development Kit (JDK) used for the host. Only specified if the feature to provide your own JDK is enabled, otherwise, the defaults are used per our Java Support Matrix. (link)
Delphix uses Eclipse Adoptium (formerly known as AdoptOpenJDK) by default. You can provide your own Java when adding an environment and in the environment configuration page,
Any other information you want to add about the environment
Not to be confused with Delphix administrator users and sysadmin users, environment users must be created for each environment to perform actions on each host. These users are configured for each data platform to interface with the database instance on the host.
- Login to the Delphix Management application using Delphix Admin credentials.
- Click Manage.
- Select Environments.
- Click on the existing environment name you want to modify and open the environment information screen.
- In the Details tab, click the Plus icon located next to Environment users.
- There are two ways that can be used for the Delphix Engine to login into the environment.
- Enter the Username and Password for the OS user in that environment and click Validate.
- If you want to use a public key for logging into your environment:
- Select ‘Username and Public Key’ for the Login Type.
- Copy the public key that is displayed, and append it to the end of ~/.ssh/authorized_keys file of the new user being added. If this directory or file does not exist, you will need to create it.
- Run chmod 600 authorized_keys to enable only the file owner with read and write privileges.
- Run chmod 755 ~ to make your home directory writable only by your user and no other user may write to it.
- The public key needs to be added only once per user and per environment.
- Click the Add icon to save the new user.
- To change the primary user for this environment, select the environment. Then click the ‘star’ icon next to Environment Users. Only the primary user will be used for environment discovery.
- To delete a user, click the Trash icon next to their username.
Environments managed by Delphix have two operations, refresh and delete.
- Environment Refresh: will update the metadata associated with that environment and sends a new toolkit to the host.
- Environment Delete: will remove all metadata associated with an environment on the engine.
After you make changes to an environment that you have already set up in the Delphix Management application, such as installing a new database home, creating a new database, or adding a new listener, you may need to refresh the environment to reflect these changes.
During environment discovery and environment refreshes, Delphix pushes a new copy of the toolkit to each host environment and will replace the old toolkit with the newer one. Included in the toolkit are:
- A Java Runtime Environment (JRE)
- Delphix jar files
- The HostChecker utility
- Scripts for managing the environment and/or VDBs
- Delphix Connector log files
When you refresh the environment it will push the toolkit back to the directory identified as the "Toolkit Path" for the given environment. Once this completes, you should be able to bring the dSource back online.
Delphix then executes some of these scripts to discover information about the objects in your environment (where the databases are installed, the database names, information required to connect to these databases, etc.). In some environments (Windows in particular), the scripts are customized to fit your environment.
An environment refresh or discovery operation does not alter the source configuration of manually added databases. If you have added the databases manually, then Delphix does not update its source configuration upon discovering a change.
- Login to the Delphix Management application.
- Click Manage.
- Select Environments.
- In the Environments panel, click the name of the environment you want to refresh.
- Select the Refresh icon.
- In the Refresh confirmation dialog select Refresh.
Deleting an environment in Delphix will remove all data and configurations related to that environment. This action only affects the environment metadata stored in the Delphix Engine. It will not affect your database installations or homes on the hosts or clusters that the environment is referencing.
Before you can delete an environment, you must first delete all dependencies such as dSources and virtual databases (VDBs)
- Login to the Delphix Management application.
- Select Environments.
- In the Environments panel, select the environment you want to delete.
- Click the Actions (...) menu, and select Delete.
- In the Delete Environment confirmation dialog click Delete.
Using HostChecker to Validate Environments
HostChecker is a standalone program which validates that host machines are configured correctly before the Delphix Engine uses them as data sources and provision targets.
Please note that HostChecker does not communicate changes made to hosts back to the Delphix Engine. If you reconfigure a host, you must refresh the host in the Delphix Engine in order for it to detect your changes.
You can run the tests contained in the HostChecker individually, or all at once. You must run these tests on both the source and target hosts to verify their configurations. As the tests run, you will either see validation messages that the test has completed successfully, or error messages directing you to make changes to the host configuration.
HostChecker is distributed as a set of Java files and executables. You can find these files and executables in five distinct tarballs, each containing a different jdk corresponding to a particular platform (OS + processor). Together, these tarballs comprise the set of engines supported by Delphix.
When validating hosts during a new deployment, it is important to download the appropriate tarball for the host you are validating. Tarballs follow the naming convention "hostchecker_<OS>_<processor>.tar." For example, if you are validating a linux x86 host, you should download the tarball named hostchecker_linux_x86.tar.
HostChecker is also included in the Delphix Toolkit which is pushed to every environment managed by the Delphix Engine. It can be found in /<toolkit-path>/<Delphix_COMMON>/client/hostchecker.
Privilege Elevation Profiles
Privilege Elevation Profiles exist to provide the Delphix Engine with a mechanism for running privileged commands in a secure way to achieve the following:
- Mount and Unmount NFS filesystems
- Create and Remove directories in paths not owned by the Delphix OS user
- Examine the running process list
- Run commands as root
This is an advanced CLI topic and intended for advanced end-users and Delphix Professional Services consultants.
Support for Privilege Elevation Profiles
Writing and troubleshooting scripts, such as those required for Privilege Elevation Profiles, is out of scope and not covered by Delphix Support.
How do Privilege Elevation Profiles Work?
Privilege Elevation Profiles need to be tailor-made to work with non-standard environments that may use third-party or proprietary a privilege elevation mechanism other than sudo. Customers are strongly encouraged to work with Delphix Professional Services to formulate reliable profile scripts.
Privilege Elevation Profiles exist within a two-tier cascading hierarchy. This means there is one default profile for the entire Delphix Engine that should contain scripts for all the operations that require privilege elevation. Additional profiles may contain a subset of the scripts. When a non-default profile is used, the Delphix Engine uses that profile's scripts where they exist and reverts to the scripts in the default profile if no script for the operation exists. By default, the Delphix Engine ships with simple scripts that pass commands to the standard UNIX sudo command.
All Environments added to the Delphix Engine get added with the default Privilege Elevation Profile. The profile can be assigned on a per-host basis. Below shows how a host using a non-standard profile will use scripts in the cascading model.
In order to create a privilege elevation profile, you must create both a profile and a profileScript. Scripts exist for particular operations, which include:
There are three parameters when creating a new profile:
The Delphix Toolkit
The Delphix Toolkit is a group of files that allow communication between Delphix engines and remote hosts. Included in the Delphix Toolkit are:
- Database and Host Scripts
- Delphix Session Protocol (DSP) binaries
- Delphix HostChecker
- Java Development Kit (JDK)
The Delphix Toolkit is automatically sent to Environments at the specified Toolkit Path whenever adding or refreshing an environment.
Toolkit Size and Predicted Growth
Delphix Toolkit’s size depends on two factors:
- The number of Delphix client applications running on the environment
- The number of VDBs on the environment (if any)
There are currently three Delphix client-side applications: SnapSyncClient, the Delphix Connector, and V2P. Each of the clients that run from the client-side toolkit generates their own logs - info, trace, debug, error. Each level of logging is restricted to a maximum of 10 log files and these log files are capped at 10 MB each.
Therefore the maximum space occupied by the toolkit directory on the Source server is its initial size of 400 MB + 1200 MB = 1.6 GB.
However, on the target server, the maximum toolkit size is initial size 400 MB + 800 MB + (Number of VDBs * 1MB)