Table of Contents | ||||
---|---|---|---|---|
|
Click the Create button to create a new Endpoint, or select an existing Endpoint by clicking on the desired row. Enter the required fields as defined in the table below.
...
Info |
---|
See Endpoint Defaults to setup default values for new Endpoints to save time. |
...
Field Name
...
Required
...
Description
...
Endpoint Name
...
Yes
...
The name of the Endpoint.
...
Description
...
No
...
An optional description for the Endpoint.
...
Active
...
Yes
...
Whether or not the endpoint is active in the system. Defaults to "Yes".
...
Connection Type
...
Yes
...
The connection type used for connection to the Endpoint.
Supports:
localhost
SSH
When using Windows, this is supported on Windows Server 2019+ where native OpenSSH is available.
SSH (Cygwin)
This is only when using Windows as Operating System. See the Cygwin Installation Guide for more information.
HTTPS
...
Operating System
...
Yes
...
Unix or Windows
...
Address
...
Yes
...
The DNS name or IP address of the Endpoint.
...
Port
...
Yes
...
The SSH port of the Endpoint (typically port 22).
...
Base Directory
...
Yes
...
A working directory on the Endpoint used by FlexDeploy. ~ is not supported here. See Permissions information below for details on how to create this folder automatically (Recommended).
For example, /app/flexdeploy.
If you have two FlexDeploy installations that may connect to same Endpoint, you must use unique folders for both FlexDeploy Servers. In most cases, separate FlexDeploy is installed to perform testing of FlexDeploy patches, which may connect to same Endpoint, in which case you can use different folder like /app/flexdeploytest and /app/flexdeploy.
Working directory under /var/tmp or /tmp folder is not recommended as administrators generally have cron jobs to purge files based on age and that will cause issues when plugin files are deleted. For example, Error: Could not find or load main class flexagon.fd.core.plugin.ExternalPluginServer will be encountered when plugin lib files are deleted.
Permissions
Base directory must be owned by
Username
orRun as (if using privilege escalation)
and it's group.Ideal option is to point base directory where
Username
orRun as (if using privilege escalation)
has access to create sub-folder. In such case, FlexDeploy will automatically create folder with necessary permissions.Permissions required are 755. Keep in mind that FlexDeploy may temporarily change permissions specifically when using
Run as
option.When using
Run as
, Base Directory is owned byRun as
and there is subfolder namescratch
which is owned byUsername
. The scratch directory is used to stage files transferred by Username, and then copied to other directories for use by theRun as
User. It’s not important to understand this detail, and is only provided since you may notice ownership differences on the scratch directory.
...
JDK Home
...
Yes
...
The JDK Home directory on the Endpoint. For example, /usr. FlexDeploy will look for /bin/java under specified JDK Home folder. Not required if the Endpoint is a Docker Host.
...
Source Script
...
No
...
An optional script executed right before plugins are executed on the endpoint. Script can source some other environment script as well. Script should be Unix shell or Windows bat commands depending on type of Endpoint. If using Windows Cygwin SSH then script should be written as Unix shell.
Some usages of this script include sourcing an environment file (. $HOME/mfile.env) or exporting a variable (export FLEXAGON_FD_PLUGIN_JAVA_ARGS="-Xmx1024m -Djava.io.tmpdir=/var/tmp"). Variables exported here will become available to plugin executions on this endpoint.
...
Transfer Protocol
...
Yes
...
Protocol/Tool to use to transfer files from FlexDeploy host to endpoint and vice-versa.
Options available are:
SCP (default)
rsync
To use the rsync option, FlexDeploy should be running on a UNIX machine, the endpoint can be UNIX or Windows (Cygwin) and rsync needs to be installed on BOTH, FlexDeploy host and endpoint and expect needs to be installed on the FlexDeploy host.
...
Authentication Type
...
Yes
...
Mechanism to use for authentication. The Password, Private Key File, and Passphrase are displayed based on selected type.
Supports:
Username and Password
Username and SSH Key
Username and SSH Key with Passphrase
...
Username
...
Yes
...
The user account on the Endpoint to connect with. All executions via this endpoint will run as this user.
...
Password
...
No
...
The password for the Username. Either password or Private Key File is required.
...
Private Key File
...
No
...
Fully-qualified path of the SSH private key file on FlexDeploy server. Either Private Key File or Password is required. ~ is not supported here.
...
Passphrase
...
No
...
An optional passphrase used when the private key was generated. Only valid if a Private Key File is specified.
...
Privilege Escalation Type
...
No
...
An optional type of privilege escalation to use after establishing connection to the endpoint.
Supports:
sudo
pbrun @since 6.5.0.3
...
Run as (user)
...
No
An optional user to run as after establishing connection to the endpoint when working with Unix OS.
For example, flexdeploy
See below for necessary setup information for type of Privilege Escalation Type:
sudo:
Add sudoers rule, such that Username can sudo to Run as (user) without prompting for a password.
something like initialLoginUser ALL=(RunAsUser) NOPASSWD: ALL
For example: flexdeploy ALL=(oracle) NOPASSWD: ALL
Test by executing the following from FlexDeploy server terminal, connected as Username: “sudo -u <Run as (user)> bash -c whoami”. Output should be the name of the Run as (user) without prompting for a password.
After completing endpoint configuration, click “Test Connection” on the Endpoint.
pbrun:
IP address or hostname with domain is required for the Address of your endpoint, as this is used for the host argument in the pbrun command. runhost and submithost will always be the endpoint’s Address
The Username on the endpoint becomes the user in pbrun and Run as (user) becomes the requestuser in pbrun. Policies should be configured accordingly.
custom setup:
If there is a need to adjust privilege escalation commands or try different privilege escalation type, then it can be done by setting up a description value like shown below. Please consult with Flexagon support if you have questions on this topic.
Code Block |
---|
sudoPrefix:sudo su -
sudoSuffix:bash -c |
...
Table of Contents | ||||
---|---|---|---|---|
|
Click the Create button to create a new Endpoint, or select an existing Endpoint by clicking on the desired row. Enter the required fields as defined in the table below.
...
Info |
---|
See Endpoint Defaults to setup default values for new Endpoints to save time. |
...
Field Name | Required | Description |
---|---|---|
Endpoint Name | Yes | The name of the Endpoint. |
Description | No | An optional description for the Endpoint. |
Active | Yes | Whether or not the endpoint is active in the system. Defaults to "Yes". |
Connection Type | Yes | The connection type used for connection to the Endpoint. Supports:
|
Operating System | Yes | Unix or Windows |
Address | Yes | The DNS name or IP address of the Endpoint. |
Port | Yes | The SSH port of the Endpoint (typically port 22). |
Base Directory | Yes | A working directory on the Endpoint used by FlexDeploy. ~ is not supported here. See Permissions information below for details on how to create this folder automatically (Recommended). For example, /app/flexdeploy. If you have two FlexDeploy installations that may connect to same Endpoint, you must use unique folders for both FlexDeploy Servers. In most cases, separate FlexDeploy is installed to perform testing of FlexDeploy patches, which may connect to same Endpoint, in which case you can use different folder like /app/flexdeploytest and /app/flexdeploy. Working directory under /var/tmp or /tmp folder is not recommended as administrators generally have cron jobs to purge files based on age and that will cause issues when plugin files are deleted. For example, Error: Could not find or load main class flexagon.fd.core.plugin.ExternalPluginServer will be encountered when plugin lib files are deleted. Permissions
|
JDK Home | Yes | The JDK Home directory on the Endpoint. For example, /usr. FlexDeploy will look for /bin/java under specified JDK Home folder. Not required if the Endpoint is a Docker Host. |
Source Script | No | An optional script executed right before plugins are executed on the endpoint. Script can source some other environment script as well. Script should be Unix shell or Windows bat commands depending on type of Endpoint. If using Windows Cygwin SSH then script should be written as Unix shell. Some usages of this script include sourcing an environment file (. $HOME/mfile.env) or exporting a variable (export FLEXAGON_FD_PLUGIN_JAVA_ARGS="-Xmx1024m -Djava.io.tmpdir=/var/tmp"). Variables exported here will become available to plugin executions on this endpoint. |
Transfer Protocol | Yes | Protocol/Tool to use to transfer files from FlexDeploy host to endpoint and vice-versa. Options available are:
To use the rsync option, FlexDeploy should be running on a UNIX machine, the endpoint can be UNIX or Windows (Cygwin) and rsync needs to be installed on BOTH, FlexDeploy host and endpoint and expect needs to be installed on the FlexDeploy host. |
Authentication Type | Yes | Mechanism to use for authentication. The Password, Private Key File, and Passphrase are displayed based on selected type. Supports:
|
Username | Yes | The user account on the Endpoint to connect with. All executions via this endpoint will run as this user. |
Password | No | The password for the Username. Either password or Private Key File is required. |
Private Key File | No | Fully-qualified path of the SSH private key file on FlexDeploy server. Either Private Key File or Password is required. ~ is not supported here. |
Passphrase | No | An optional passphrase used when the private key was generated. Only valid if a Private Key File is specified. |
Privilege Escalation Type | No | An optional type of privilege escalation to use after establishing connection to the endpoint. Supports:
|
Privilege Escalation Syntax | No | @since 6.5.0.5 An optional syntax which wraps all commands to be executed on the endpoint. You can use property replacement syntax i.e. $${{RUN_AS_USER_NAME}}, with this input and the variable will be replaced with the appropriate value at runtime. The following variables are available:
Important notes:
|
Run as (user) | No | An optional user to run as after establishing connection to the endpoint when working with Unix OS. For example, flexdeploy See below for necessary setup information for type of Privilege Escalation Type: sudo:
pbrun:
|
Optionally, click the Test Connection button to validate that the FlexDeploy server can connect to the configured Endpoint.
...
To inactivate an endpoint click the Active link on the desired Endpoint, and it will toggle to Inactive. This will hide that Endpoint after leaving the screen, until the Active checkbox is unchecked. To reactivate an Endpoint, click the Inactive link and it will toggle back to Active. This endpoint is now active in the system again and ready for use.
SSH Authentication
FlexDeploy utilizes SSH to connect to its configured Endpoints. SSH uses public-key cryptography to authenticate the remote computer and allow it to authenticate the user. FlexDeploy supports Creating an SSH Endpoint using Password Authentication or using SSH KeysSSH to connect to its configured Endpoints using Password authentication or SSH public-private keys.
FlexDeploy also supports using privilege escalation with sudo or pbrun (@since 6.5.0.3) for UNIX. See Privilege Escalation and Run as (user) details above.
...
Info |
---|
Flexagon focuses its testing with RSA keys for SSH, since their use is more prevalent by our customers. We therefore recommend using RSA. |
Include Page | ||||
---|---|---|---|---|
|
Password Authentication
Anchor | PasswordAuth | PasswordAuth |
---|
...
|
In this case you must provide a Username and Password to connect to the endpoint. perform authentication.
Unix Example | Windows Example |
---|---|
Info |
---|
MacOS endpoints are supported using Unix Connection Type. |
Public-Private Key Authentication
Anchor | ||||
---|---|---|---|---|
|
The second technique is to use a manually generated public-private key pair to perform the authentication, allowing the FlexDeploy server to connect to endpoints without having to specify a password. In this scenario, a public and private key pair are generated on the FlexDeploy server. The In this case you must use public-private key pair to perform the authentication (password in not required in this case). The private key is kept secretly on the FlexDeploy server by setting the permissions such that only the owner can read it (the userid which the FlexDeploy server is running as). The public key is copied to all endpoint computers which must allow access to the owner (user running FlexDeploy server) of the matching private keyFlexDeploy server can read it. The public key is copied to endpoint. While authentication is based on the private key, the key itself is never transferred through the network during authentication. SSH verifies whether the same person offering the public key also owns the matching private key. In this case you You must provide the Username, the path to the Private Key File on the server on Endpoint where public key was copied, and an optional Passphrase (an optional password assigned to the private key when it was generatedat generation time).
...
Creating a Public-Private Key Pair
...
It is typical to use the default file name and location to store the private key (which is in the .ssh subfolder of the user's home directory). You can optionally secure the private key file with a passphrase. It is an SSH requirement that the private key be readable only by its owner (e.g. oracle in the example above). So you must change the permissions accordingly (e.g. chmod 600 /home/oracle/.ssh/id_rsa). You will receive an error at connection time similar to the following if you omit this step.
Permissions 0777 for '/home/oracle/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others otherwise private key will be ignored.
Info |
---|
The /home/oracle/.ssh folder on the endpoint must have drw------- permissions. For example,
|
...