Installing the Connector on RHEL/Rocky Linux
You can configure the firewall, setup the system, download and install the Anyware connector on RHEL/Rocky Linux. If you are currently using Connector on Ubuntu, it is important to read and understand the differences Connector on RHEL/Rocky Linux introduced, To find out the side by side comparison, see Difference between Anyware Connector on Ubuntu and RHEL/Rocky Linux.
The following sections outlines how to download and install the Connector on Rocky Linux and RHEL. There are five main steps involved in this process:
- Adding the Connector repository
- Configuring the SELinux components
- Installing the RPM
- Generating the Connector Token
- Connecting to a Remote Workstation with a PCoIP Client
Prerequisite Steps¶
For instructions and documentation on the Connector prerequisite steps when installing on RHEL/Rocky Linux, see Connector System Requirements. It is important to read and address all the prerequisites outlined.
Before you begin
If you are currently using the Anyware Connector on Ubuntu, it is important to read and understand what the differences are between the Connector on Ubuntu and Connector on RHEL/Rocky Linux so you can prepare the installation correctly to minimize errors during installation.
For more information, see Difference between Anyware Connector on Ubuntu and RHEL/Rocky Linux.
1. Adding the Connector Repository¶
The virtual machine you are adding the repo to must have access to the internet. If it doesn't, you cannot download and install the required files.
Checking Existing Repositories for Anyware Connector¶
If the Anyware Connector was installed previously on your virtual machine, there could be existing repos related to it on your system. Run the command below to check all existing repos related to Anyware Connector (Skip this step if Anyware Connector was never installed on your virtual machine).
dnf repolist teradici-anyware-manager*
Check the current Anyware Connector repo to make sure it is the desired repo that you want to use for installation. If there are unwanted repositories on your VM, see Repository Management to remove them.
Adding a Repository¶
-
To access the scripts and to configure and add the RHEL and Rocky Linux repository, select the Downloads and scripts option from the Anyware Manager support site.
If you see a login button as such:
Click it to log into the site and then proceed.
-
Accept the End User License Agreement, then click Set Up Repository.
-
The window expands and displays the setup scripts. Copy the
curl
script to clipboard. -
On the machine where you want to install Anyware Connector, run the
curl
script:-
RHEL/Rocky 8:
curl -1sLf 'https://dl.anyware.hp.com/<token>/anyware-manager/setup.rpm.sh' | sudo -E bash
-
RHEL/Rocky 9:
curl -1sLf https://dl.anyware.hp.com/<token>/anyware-manager/cfg/setup/bash.rpm.sh | sudo -E distro=el codename=8 bash
-
2. Configuring SELinux Policies¶
The following SELinux policies enable persistent storage and container logging on the Connector. If SELinux policies are not found and the virtual machine is shutdown, the data stored in the Connector is lost.
Once configured, and the installation has verified SELinux, all Connector related data persists when the target machine hosting the Connector is re-booted. To check if selinux
is already installed on your system, run the following command:
sudo dnf list installed | grep anyware-manager-selinux
The output from this command notifies if selinux
is already running on your system. If it is not, then you need to run the following commands to install the SELinux policies:
-
Run the following command to install the SELinux policies and set the basic framework for persistent database and Vault:
sudo dnf install -y selinux-policy-base container-selinux
-
Run the following command to install a specific version of SELinux that has been tested for K3s:
sudo dnf install -y https://github.com/k3s-io/k3s-selinux/releases/download/v1.5.stable.1/k3s-selinux-1.5-1.el8.noarch.rpm
-
Run the following command to install SELinux from the Anyware Manager repo:
sudo dnf install -y anyware-manager-selinux
3. Installing the Connector RPM¶
Once you have installed and configured the SELinx policies you must install the Connector RPM and configuration files.
Run the following command to install the Connector RPM, the sample configuration files are generated once the install is done:
sudo dnf install -y anyware-connector
4. Generating a Connector Token¶
You must generate a Connector token using the Admin Console. The steps outlined below must be performed on the target virtual machine.
You need to create or have created a deployment prior to obtaining a token. For information on how to log into the Admin Console, see Admin Console Connection. The following section outlines how to obtain a Connector token using the Admin Console:
- Click Connectors from the console sidebar.
- Click the add connector button (+ sign located beside Connectors heading) to display the connector creation panel.
- Enter the following information:
- Select the deployment you want to add the Connector to. If you do not have an existing deployment you need to create one.
- Enter the name of the Connector.
- Follow the step by step instructions outlined below.
- Click GENERATE.
- Copy the Connector token by click the copy icon.
You can now use this Connector token when prompted during installation.
5. Configuring the Connector-Example Commands¶
The following section provides example configuration commands for configuring the Connector with Anyware Manager and Anyware Manager as a Service. These example commands use flags, but the same parameters can be configured using the configuration files also.
Configuring the Connector for Anyware Manager¶
Once you have installed the Connector RPM, and have generated a Connector token from the Anyware Manager installed in your enterprise network, run the following commands to configure the Connector to work with the Anyware Manager in your enterprise network. The first line for these commands maps the Connector token to a variable in the shell, the ' ' for the string values are not required if there are no special chars in the string.
Minimum Configuration Sample Command for Quick Start¶
The following command with dummy values configures a Connector with minimum flags to work with the Anyware Manager in your enterprise network. Communications with external integrations such as PCoIP clients, Active Directory server, etc are not secure without certificate validation are not secure without certificate validation, this should only be used for testing purpose.
export token=<token from Anyware Manager Admin Console>
/usr/local/bin/anyware-connector configure \
--manager-url 'https://ipv4.Anyware.Manager.Installable' \
--token $token \
--domain 'testlab.internal' \
--accept-policies \
--enable-ad-sync=false \
--ldaps-insecure \
You can use the minimum command for testing or base installation excluding additional configurations. When editing a workstation, you should manually add workstations from the Admin Console and add a user assignment by the user's UPN as the domain users or computers are synced.
!!! Note: The ability to manually add a user assignment by the user's UPN is supported only in Anyware Manager as a Service combined with Anyware Connector RHEL/Rocky Linux 23.06 or later or Ubuntu Connector version 164 or later."
Typical Configuration Sample Command¶
export token=<token from Anyware Manager admin console>
sudo /usr/local/bin/anyware-connector configure \
--manager-url 'https://ipv4.Anyware.Manager.Installable' \
--token $token \
--domain 'testlab.internal' \
--sa-user 'sampleuser' \
--sa-password 'Passwordstring' \
--ldaps-ca-cert '/home/rocky/DC-Cert.pem' \
--computers-dn 'CN=Computers,DC=testlab,DC=internal' \
--users-dn 'CN=Users,DC=testlab,DC=internal' \
--external-pcoip-ip 'public.ipv4.sg.ip' \
--self-signed \
--accept-policies \
--manager-insecure \
--debug
-
--manager-url
Sets the Anyware Manager URL that the Connector will connect to. If this flag is not provided, the connector will connect to Anyware Manager as a Service (https://cas.teradici.com
). Required for instances of Anyware Manager Installable. -
Installable only: The
--manager-ca-cert
flag provides the PEM-formatted public certificate for the root CA used to sign the Anyware Manager certificate. This flag is required when Anyware Manager Installable is using a custom certificate that is not signed by a public CA. This flag has no effect when connecting to Anyware Manager as a Service. -
Installable only: The
--manager-insecure
flag is required if the target Anyware Manager is using self-signed certificates. This flag is not required if Anyware Manager is using trusted TLS certificates signed by a public CA. This flag has no effect when connecting to Anyware Manager as a Service. -
--external-pcoip-ip
: Explicitly sets the public IP for PCoIP Client to PCoIP Agent connection, and is highly recommended as a best practice. If not provided, the installer will attempt to automatically resolve the external IP by reaching out tohttps://cas.teradici.com
. This flag is required if automatic resolution fails, or if the Connector does not have a connection to the public internet. -
The first time you install a connector in a deployment, use
--computers-dn
and/or--users-dn
flags to sync AD objects to Anyware Manager. Subsequent connectors installed in the same deployment will automatically inherit the configuration from Anyware Manager.If these flags are not provided, the AD sync synchronises all objects from the AD to the Anyware Manager.
-
If
--self-signed
flag is not used, you should use--tls-key
and--tls-cert
flags to provide the full path and filename of the TLS key and PEM formatted TLS certificate to use. -
If
--ldaps-ca-cert
flag is not used, you should use either--ldaps-insecure
to skip certificate validation, or--enable-ldap-plaintext
for test purposes.
Ensure that you use the options and flags that best suit your system architecture and requirements. If required values are not provided on the command line, you are prompted for them. For additional flags and options, see Installation Flags and Options.
Additional Configurations for the Anyware Connector¶
Updating the Connector
When updating configurations for Anyware Connector using "Configure" command, it restarts to apply the updated configurations and all the active sessions going through the connector are disconnected. This require users to log in again and reconnect.
Multi-Factor Authentication¶
When you enable MFA for the Connector for RHEL/Rocky Linux, all PCoIP Clients authenticated through the Connector are prompted to enter MFA credentials. Previously, only the external PCoIP Clients were prompted for MFA information.
Multi-Factor Authentication for the Connector
When installing the Connector you can enable multi-factor authentication (MFA) by running the ‑‑enable‑mfa
flag. MFA is disabled by default. If you want MFA to only apply to external connections, you should have separate Connectors. One Connector should be for external connections, where MFA is enabled, and one for internal or direct connections, where MFA is disabled. For steps on how to install the Connector with MFA bypassed for internal connections, see Installing the Connector for Internal Connections. For steps on how to install the external Connector, see Installing the Connector for External Connections.
Ensure that you use the options and flags that best suit your system architecture and requirements. If required values are not provided on the command line, you are prompted for them. For additional flags and options, see Installation Flags and Options.
Installing the Connector for Internal Connections¶
The following steps outline how to install the Connector for internal connections to bypass MFA:
- Prepare a virtual machine in your private network that meets the system requirements with the following sub-steps:
- Skip the step for preparing the system for external access.
- Skip the step for setting up MFA.
- Install the Connector with the following sub-steps:
- If you don't have external users, then you could disable security gateway by passing
--enable-security-gateway=false
, otherwise it's set to true enabled by default. - Do not set the Public IP using the
--external-pcoip-ip
flag. The Connector returns the virtual machines IP address. - No MFA flag is required as MFA is disabled by default.
- If you don't have external users, then you could disable security gateway by passing
- Once you have installed the Connector connect to a remote workstation with a PCoIP Software Client with the following sub-step:
- In the Host Address or Code field enter the private IP of the internal Connector you just installed and log-in.
Installing the Connector for External Connections¶
The following steps outline how to install the Connector for external connections:
- Prepare a virtual machine in your private network that meets the system requirements with the following sub-steps:
- Skip the step for preparing the system for internal access.
- Install the Connector with the following sub-steps:
- Set the Public IP using the
--external-pcoip-ip
flag.
- Set the Public IP using the
- Once you have installed the Connector, connect to a remote workstation with a PCoIP Software Client with the following sub-step:
- In the Host Address or Code field enter the IP address or DNS name of the external Connector you just installed and log-in.
Updating CIDR for Connector Cluster¶
The default CIDR for Connector Cluster are as follows:
- 10.42.0.0/16 cluster CIDR
- 10.43.0.0/16 Service CIDR
- 10.43.0.10 Cluster DNS
If the default CIDRs conflict with your internal network, use the following flags to update the cluster with different CIDR.
To update, run the following command:
sudo anyware-connector configure --cluster-cidr <IP Address> --service-cidr <IP Address> --cluster-dns <IP Address>
Example Command with dummy values:
sudo anyware-connector configure --cluster-cidr 192.168.10.0/24 --service-cidr 172.16.0.0/16 --cluster-dns 172.16.0.10
Installation Flags and Options¶
For detailed information on the installation flags and the configuration file parameters that you can pass during installation, see the table outlined below:
Groups of flags
The flags are here categorized by their configuration groups:
States for Boolean Flags
The state of all the Boolean Flags is interpreted as follows:
--boolean-flag
means "true".--boolean-flag=true
means "true".--boolean-flag=false
means "false".--boolean-flag anytext
uses default as "true".
Anyware Manager Flags¶
Flag | Config Key | Description |
---|---|---|
--manager-url | manager.url |
(String) The Anyware Manager URL that the Connector will connect to. If this flag is not provided, the connector will connect to Anyware Manager as a Service ( https://cas.teradici.com ). Required for instances of Anyware Manager Installable. |
--manager-ca-cert | manager.CaCertPath |
(String) Provide an Anyware Manager CA certificate, which the Connector uses to establish trust and connect to Anyware Manager. |
--manager-insecure | manager.Insecure |
(Boolean) Turns off verification of the CA certificate. Use this flag when connecting to an Anyware Manager instance that uses self-signed certificates. |
Connector Flags¶
Flag | Config Key | Description |
---|---|---|
--token | connector.token |
(String) Required. The token generated from Anyware Manager for Connector to create a service account to connect to Anyware Manager. |
--accept-policies | connector.AcceptPolicies |
(Boolean) Automatically accept the EULA and Privacy Policy. |
--push-config-to-manager | connector.PushConfigToManager |
(Boolean) Send (non-sensitive) configuration data to Anyware Manager, to be used by future Connector installations. |
--pull-config-from-manager | connector.PullConfigFromManager |
(Boolean) Include this flag to retrieve Connector configuration data from Anyware Manager. |
Note: About Connector Configuration Parameters
Instructions on using the Connector Configuration parameters is available in this topic.
Connector MultiFactorAuthentication Flags¶
Flag | Config Key | Description |
---|---|---|
--enable-mfa | connector.MultiFactorAuthentication.enable |
(Boolean) This flag can be used if you wish to enable multi-factor authentication. Multi-factor authentication will be enabled for all connections, both internal and external. Internal users will be required to enter the multi-factor authentication code for the Connector when connecting to the PCoIP Client. It is recommended to install separate Connectors for internal vs external connections. |
--radius-server | connector.MultiFactorAuthentication.Server |
(String) The FQDN or IP address of the RADIUS server to use for MFA. Optional. |
--radius-port | connector.MultiFactorAuthentication.Port |
(String) This is the RADIUS server port. If not specified, the default port (1812) is used. If --radius-server is specified, then this flag is optional. |
--radius-secret | connector.MultiFactorAuthentication.SharedSecret |
(String) The shared secret used for configuring RADIUS authentication. If --radius-server is specified then this flag is required. |
Connector TLS Flags¶
Flag | Config Key | Description |
---|---|---|
--self-signed | connector.tls.self-signed |
(Boolean) This mode is not secure, and should only be used for testing. PCoIP clients will receive a "untrusted" warning when connecting to the Connector. The previous --insure flag is still supported. |
--tls-cert | connector.tls.certpath |
(String) The full path and filename of the TLS certificate (in PEM format) to use. If --self-signed is used, this flag has no effect. |
--tls-key | connector.tls.keypath |
(String) The full path and filename of the TLS key to use. If --self-signed is used, this flag has no effect. |
Connector Session Flags¶
Flag | Config Key | Description |
---|---|---|
--external-pcoip-ip | connector.session.ip |
(String) Manually sets the public IP for PCoIP Client to PCoIP Agent connection. If not provided, the installer will attempt to automatically resolve the external IP by reaching out to https://cas.teradici.com . This flag is required if automatic resolution fails, or if the Connector does not have a connection to the public internet. |
--external-pcoip-port | connector.session.port |
(String) Manually sets the sets the PCoIP session port. The default value is 4172. This flag is configurable. |
--local-license-server-url | connector.session.licenseServerUrl |
(String) Sets the URL for PCoIP License Server to be used for PCoIP Sessions. If this is not provided, ensure that the Cloud License Server is registered on the PCoIP Agent. Example: --local-license-server-url http://10.10.10.10:7070/request. For more information on the PCoIP License Server, see PCoIP License Server. |
--show-agent-state | connector.session.showagentstate |
(Boolean) Specifies whether the agent state is displayed as part of the remote workstation name in the PCoIP Client. The default value for this flag is true. This setting has no effect if --retrieve-agent-state is false . |
--retreive-agent-state | connector.session.retreiveagentstate |
(Boolean) Enables the broker to retrieve the agent state for unmanaged and managed remote workstations. The default value for this flag is false. The available states are In Session, Ready, Starting, Stopping, Stopped and Unknown. |
--preferred-name | connector.session.preferredname |
(String) This is an optional flag to determine if the hostname or machine name should be displayed to identify the remote workstations, the default is set to display machine name. |
--enable-security-gateway | connector.session.enablesecuritygateway |
(Boolean) By default the security gateway for external traffic is set to true. For internal traffic disable this feature using the --enable-security-gateway=false flag. |
Connector Session TrustedCustomerLicensing Flags¶
Flag | Config Key | Description |
---|---|---|
--trusted-customer-license-cert | connector.session.TrustedCustomerLicensing.certpath |
(String) The full path, including filename, of the Trusted Customer licensing certificate file. |
--trusted-customer-license-key | connector.session.TrustedCustomerLicensing.keypath |
(String) The full path, including filename, of the Trusted Customer licensing key file. |
--clear-trusted-customer-license | connector.session.TrustedCustomerLicensing.clear |
(Boolean) Clear the Trusted Customer Licensing flag and key from the Connector configuration. |
Connector ClusterNetwork Flags¶
Flag | Config Key | Description |
---|---|---|
--service-cidr | connector.ClusterNetwork.serviceCidr |
(String) The IPv4 network CIDRs to use for service container IPs. |
--cluster-cidr | connector.ClusterNetwork.clusterCidr |
(String) The IPv4 network CIDRs to use for container pod IPs. |
--cluster-dns | connector.ClusterNetwork.clusterDns |
(String) The IPv4 address for DNS for cluster pods. Must be within the range indicated by --cluster-cidr . |
Connector Domain Flags¶
Flag | Config Key | Description |
---|---|---|
--domain | connector.Domain.Name |
(String) The AD domain that the remote workstations will join. |
--enable-ad-authentication | connector.Domain.EnableAuthentication |
(Boolean) Enables AD authentication. Default: true |
--domain-controller | connector.Domain.DomainControllers |
(String) This flag specifies one or more domain controllers to use with the Connector. To specify multiple domain controllers use the following format: --domain-controller dc1.domain.com , --domain-controller dc2.domain.com , --domain-controller dc3.domain.com . Only FQDNs are accepted. |
--pool-group | connector.domain.poolGroups |
(String) Specifies one or more Active Directory groups, by entering the distinguished name (DN), to be assigned to pools for remote workstation management (eg, --pool-group 'CN=GroupPool1,CN=Users,DC=sample,DC=com' --pool-group 'CN=GroupPool2,CN=Users,DC=sample,DC=com'). |
--enable-plaintext-ldap | connector.domain.enableLdapMode |
(Boolean) Connections to Active Directory will be made using plaintext LDAP instead of encrypted LDAPS. This is meant only for testing, do NOT use it in production. |
--ldaps-ca-cert | connector.domain.caCertPath |
(String) To supply a CA certificate for the connection to AD over LDAPS. |
--ldaps-insecure | connector.domain.insecure |
(Boolean) Skip certificate validation when connecting to the Active Directory using LDAPS. This option should only be used when connecting to the Active Directory deployed with self signed certificates. This will be ignored if a CA cert is provided. |
Connector Domain ServiceAccount Flags¶
Flag | Config Key | Description |
---|---|---|
--sa-user | connector.domain.serviceAccount.username |
(String) The AD service account username. |
--sa-password | connector.domain.serviceAccount.password |
(String) The AD service account password. |
Connector Domain ADSync Flags¶
Flag | Config Key | Description |
---|---|---|
--enable-ad-sync | connector.domain.adsync.enable |
(Boolean) Enable Active Directory synchronization. |
--users-dn | connector.domain.adsync.UserDns |
(String array) The base DN to search for users within AD. Specify multiple DNs with multiple options. Newly provided base DN(s) will automatically replace previous base DN(s). The base DN to search for computers within the AD for AD sync. You can specify multiple DNs with multiple options. See the table above on the differences between the Connectors for more information. Newly provided base DN(s) automatically replaces previous base DN(s). |
--users-filter | connector.domain.adsync.UserFilters |
(String) The filter to search for users within Active Directory. Specify multiple filters with multiple options. The default user filter is (&(objectCategory=person)(objectClass=user)) . |
--computers-dn | connector.domain.adsync.ComputerDns |
(String) The base DN to search for computers within AD for AD sync. Can specify multiple DNs with multiple options. See the differences between the Connectors at the top of this page for details. Newly provided base DN(s) will automatically replace previous base DN(s). |
--computers-filter | connector.domain.adsync.CompuyterFilters |
(String) The filter to search for computers within Active Directory. Specify multiple filters with multiple options. The default computer filter is (&(primaryGroupID=515)(objectCategory=computer)) . |
--sync-interval | connector.domain.adsync.Interval |
(uint8) The interval (in minutes) for how often to sync AD users and computers with the Anyware Service. |
Connector OAuth Flags¶
Flag | Config Key | Description |
---|---|---|
--enable-oauth | connector.oauth.enabled |
(Boolean) Enables Oauth authentication. |
--id-provider-url | connector.oauth.IDProviderUrl |
(String) Sets the identity provider URL. Example: --id-provider-url https://provider-1234567890.okta.com . This flag is required if --enable-oauth is true . |
--oauth-client-id | connector.oauth.IdpAppClientId |
(String) Sets the Client ID from the Identity Provider. This flag is required if --enable-oauth is true . |
--oauth-flow-code | connector.oauth.OauthFlowCode |
(String) Set the desired OAuth flow / grant type. Currently, only OAUTH_FLOW_CODE_WITH_PKCE is supported, and is used by default. |
--fa-url | connector.oauth.FaUrl |
(String) The Federated Auth Broker URL. for example https://cac-vm-fqdn:port |
--oauth-server-ca | connector.oauth.OauthServerTrustCaPath |
(String) The full path, including file name, of the OAuth Server CA certificate. |
Connector SSO Flags¶
Flag | Config Key | Description |
---|---|---|
--enable-sso | connector.oauth.EnableSSO |
(Boolean) Enable Single Sign-On. |
--sso-enrollment-url | connector.oauth.SSOEnrollmentUrl |
(String) Sets the URL to the Active Directory Certification Authority Web Enrollment Service. |
--sso-enrollment-certificate-template-name | connector.oauth.SSOEnrollmentCertificateTemplate |
(String) Name of the certificate template that Active Directory Certificate Services (AD CS) uses to sign CSR. |
--sso-enrollment-domain | connector.oauth.SSOEnrollDomain |
(String) Domain of the user to access Active Directory Certification Authority Web Enrollment Service. |
--sso-enrollment-username | connector.oauth.SSOEnrollAccount |
(String) Username for accessing Active Directory Certification Authority Web Enrollment Service. |
--sso-enrollment-password | connector.oauth.SSOEnrollPassword |
(String) Password for the username to access Active Directory Certification Authority Web Enrollment Service. |
Connector OAuth OpenSSL Flags¶
Flag | Config Key | Description |
---|---|---|
--sso-signing-csr-ca | connector.oauth.OpensslCsrSign.CaCertPath |
Path to copy intermediate CA Certificate. |
--sso-signing-csr-key | connector.oauth.OpensslCsrSign.CaKeyPath |
Path to the intermediate key. |
--sso-signing-csr-crl | connector.oauth.OpensslCsrSign.CaCRLPath |
Path to a certificate revocation list. |
5. Connecting to a Remote Workstation with a PCoIP Client¶
After successfully installing a Connector, you can initiate a session to connect to a remote workstation with a PCoIP Software Client. We enable customers to use multi-factor authentication for these PCoIP Client sessions. The following steps outline how to connect to a remote workstation using the PCoIP Software Client:
- Double-click the PCoIP Client desktop icon or program file PCoIPClient to launch the application.
- In the Host Address or Code field, enter one of the following:
- For direct connections, provide the address of the host machine.
- For managed connections, provide the address of the connection manager.
- Click NEXT.
- Select your domain and enter the credentials for the remote workstation. If you have enabled MFA then you are prompted for the 2nd factor passcode. The method of how this passcode is communicated depends on the provider you used. It is usually either a One Time Password or push notification.
- Click LOGIN.
- If your login is successful you should be able to select the remote workstation and connect to it. Please note that if you have a single remote workstation, that remote workstation is automatically selected and the connection is initiated immeadiately. In this case you are not presented with a remote workstation selection screen.
For more information about the PCoIP Software Client, please see the following PCoIP Software Client guides: