Endpoints

Endpoints are the FlexDeploy representation of a device or virtual machine where plugins can be run. They hold connection and host details that allow FlexDeploy to connect to and perform commands on the server.

FlexDeploy utilizes an agentless architecture to connect to computers across private or public networks/clouds to execute build and deploy operations. This architecture uses a secured communication protocol (SSH) and eliminates the need for installing and managing software on every build and deployment target. In many cases, no setup is required on an Endpoint prior to configuring it within FlexDeploy.

Endpoint Requirements

  • Requires a Unix or Microsoft Windows operating system.
    • Windows Server 2019 supports native OpenSSH
    • For other Windows servers, Cygwin must be installed along with the openssh package. See the Cygwin Installation Guide for more information.
  • Requires Java 1.6 or higher to be installed. Some plugins require a version newer than 1.6.
    • Typically FlexDeploy references the actual JAVA_HOME folder.
    • The JDK Home could be a symlink if desired to make Java upgrades easier. A symlink is not required or preferred by FlexDeploy, but works.
      • On Windows, a symlink can be created with the mklink /D <target> <source> command where <target> is set as JDK Home in the endpoint settings of FlexDeploy, and <source> is the actual Java install location.
        • If the Java install path is changed, then use rmdir <target> to delete the symlink. Then recreate the symlink with the new <source> folder.
      • On Unix, a symlink can be created with the  ln -sT <source> <target> command where <target> is set as JDK Home in the endpoint settings of FlexDeploy, and <source> is the actual Java install location.
        • If the Java install path is changed, then use rm <target> to delete the symlink. Then recreate the symlink with the new <source> folder.
  • Requires a user account which FlexDeploy can connect with.
  • Requires rsync to be installed on BOTH, the endpoint and the FlexDeploy host and expect to be installed on the FlexDeploy host, if you wish to use rsync protocol to transfer files.
  • Requires a directory that is writable by the user account that FlexDeploy connects with.
  • The FlexDeploy server must be able to access the SSH port (default is port 22) on the Endpoint

Cipher Support

FlexDeploy supports the following ciphers for SSH connections.  FlexDeploy will automatically negotiate this with the SSH server on the endpoint.

aes{128,192,256}-{cbc,ctr}, blowfish-{cbc,ctr}, 3des-{cbc,ctr}, twofish{128,192,256}-{cbc,ctr}, twofish-cbc, serpent{128,192,256}-{cbc,ctr}, idea-{cbc,ctr}, cast128-{cbc,ctr}, arcfour, arcfour{128,256}

Viewing Endpoints

To view the configured Endpoints, select Topology from the menu, and then choose the Endpoints tab. Enter any optional search criteria and click the Search button.



Creating/Editing Endpoints

See the following links for information on creating Endpoints.

See Endpoint Defaults to setup default values for new Endpoints to save time.

Activating and Inactivating Endpoints

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

Endpoint Directory Structure

FlexDeploy creates and manages the following directory structure on the endpoints. 

Note that the permissions on this folder structure is 755 and must not be made less restrictive. Also, this folder structure is mostly owned by Endpoint User or Run As User.

plugins
The plugins directory holds each version of a plugin that has been executed on the Endpoint. There can be several different plugins loaded and several versions of a given plugin.  FlexDeploy will automatically purge older plugin versions, and redistribute them if an older version is later activated.

scratch
Internal directory which is used for file transfer and managing permissions.  Applicable only when using "Run As User" on the endpoint to execute commands as another privileged user.

The scratch folder is only created when using "Run as User" for the endpoint. This folder is created and owned Endpoint user, whereby all other directories are owned by the Run As User.  This is required to facilitate the upload/download of files which are performed using the endpoint user.

security
The security directory holds information related to the SSH connection between the FlexDeploy server and the Endpoint server and is used for secure communications.

work
The work directory contains every invocation of a plugin operation that has occurred on the Endpoint. There is additional file structure under the work directory based on the execution project id and the current execution id of the given project.

work/<projectId>/<executionId>/artifacts
Directory where artifacts are stored so they can be transferred back to the FlexDeploy server and stored permanently in the artifact repository.

work/<projectId>/<executionId>/internal
Directory where all internal FlexDeploy scripts are stored to execute the plugin step.

work/<projectId>/<executionId>/object-results
Directory utilized by partial deployment plugins to transfer the deployment status of each file back to the FlexDeploy server.

work/<projectId>/<executionId>/reports
Directory to write any report files during Build, Pre-deploy, Test or Deploy operations. The Report file size can be controlled from the Administration → System Settings page.

work/<projectId>/<executionId>/temp
Directory for plugin execution to checkout and manipulate data or files until moved to the artifacts directory for storage.

work/<projectId>/<executionId>/test-results
Directory for test plugins like Junit to place the test result to be processed.

work/<projectId>/<executionId>/transfer
Directory used to return file from a plugin execution and feed as input into another plugin operation.  This directory is only used in very specific use cases.

The following macros are not currently supported in the footer:
  • style