Contact Us 1-800-596-4880

Install Runtime Fabric Manually

This topic describes how to install and register Anypoint Runtime Fabric on VMs / Bare Metal on VMs hosted in your data center.

Before installing Runtime Fabric on VMs / Bare Metal, refer to Shared Responsibility for Runtime Fabric on VMs / Bare Metal. If your infrastructure does not meet the minimum hardware, operating system, and networking requirements, Runtime Fabric on VMs / Bare Metal will not operate successfully.

Your organization’s operations, networking, and security teams must be involved. See Anypoint Runtime Fabric Installation Prerequisites.

Before you Begin

Ensure that the following criteria have been met before beginning the installation:

Base64 Encode your Mule License Key

To install Runtime Fabric, your Mule license key must be Base64 encoded. Copy the license file, license.lic, to the installer node.

Linux

To encode your license file on Linux, run the following:

base64 -w0 license.lic

MacOS

To encode your license file on MacOS, run the following from the terminal:

base64 -b0 license.lic

Windows

To encode your license file on Windows, a shell terminal emulator (such as cygwin) or access to a Unix-based computer is required to follow these steps:

  1. Find your organization’s Mule Enterprise license key file (license.lic) and transfer to your Unix environment if necessary.

  2. Run the following command to Base64 encode the license key:

    base64 -w0 license.lic

Operations Performed During Installation

The installation performs the following actions on each VM:

  • Formats the dedicated disks.

  • Mounts the dedicated disks to the appropriate path.

  • Sets iptable rules.

  • Enables the required kernel modules.

  • Enables and reloads system services.

Installation

First, download the scripts ZIP file on the controller VM which will act as the leader in the installation.

  1. Sign in to Anypoint Platform and navigate to Runtime Manager.

  2. On the left navigation pane, select Runtime Fabrics.

  3. Click on the Runtime Fabric you created. It should be in the Activating state.

  4. Right-click the Download files button and select "Copy link location".

  5. Download the file to the controller VM.

    1. Open a shell (SSH session) to the controller VM.

    2. Download the file: curl {INSTALLER_URL} --output rtf-install-scripts.zip

  6. Once downloaded, unzip the rtf-install-scripts.zip file in a separate directory.

    mkdir -p ./rtf-install-scripts && unzip rtf-install-scripts.zip -d ./rtf-install-scripts

Inside the rtf-install-scripts/ directory, you’ll find a sub-directory named manual containing the following:

  • generate-configs.sh: a script to help generate environment variables for each VM.

  • README.md: a markdown file containing instructions to aid with installation.

Variables to Define

Second, become familiar with the variables needed for installation. The value for the RTF_ACTIVATION_DATA variable can be found on the Runtime Fabric page on Runtime Manager.

Table 1. Required Installation Variables
Parameter Description Example

RTF_CONTROLLER_IPS

IP addresses of the controller VMs, separated by whitespace. The first IP address will need to be the leader of the installation.

"10.3.0.4 10.3.0.5 10.3.0.6"

RTF_WORKER_IPS

IP addresses of the worker VMs, separated by whitespace.

"10.3.0.11 10.3.0.12 10.3.0.13"

RTF_DOCKER_DEVICE

The full block device path for the dedicated disk used for Docker, supporting 1000 provisioned IOPS.

/dev/xvdc

RTF_ETCD_DEVICE

The full block device path for the dedicated disk used for etcd, supporting 3000 provisioned IOPS.

/dev/xvdb

RTF_ACTIVATION_DATA

The encoded Runtime Fabric activation data. You can access this data by viewing your Runtime Fabric in Runtime Manager.

NzdlMzU1YTktMzAxMC00OGE0LWJlMGQtMDdxxxx

RTF_MULE_LICENSE

The base64 encoded contents of your organization’s Mule Enterprise license key (license.lic).

==ABCD12934…​

To help identify the block device paths to your disks, use the lsblk command on the VMs. To base64 encode the Mule license key, see the instructions above under Base64 Encode your Mule License Key.

Optional Variables

The following variables can be defined based upon your organization’s requirements.

Table 2. Optional Installation Variables
Parameter Description Example

RTF_HTTP_PROXY

The hostname and port of the HTTP proxy server that will forward outbound HTTP requests.

http://1.1.1.1:80

RTF_MONITORING_PROXY

The hostname, port, and optional username and password of the SOCKS5 proxy server that will forward metrics and logs to Anypoint Monitoring.

socks5://user:pass@1.1.1.2:800

RTF_NO_PROXY

A comma-separated list of hosts which should bypass the proxy.

1.1.1.1,no-proxy.com

RTF_SERVICE_UID

An integer representing the user ID to run each Runtime Fabric service. Overrides the default behavior of creating a user named "planet".

1000

RTF_SERVICE_GID

An integer representing the group ID used when running each Runtime Fabric service. Overrides the default behavior of creating a group named "planet".

900

POD_NETWORK_CIDR

Support for a custom pod CIDR block.

10.244.0.0/16

SERVICE_CIDR

Support for a custom service CIDR block.

10.100.0.0/16

To install a specific version of Runtime Fabric on VMs / Bare Metal, transfer the installation package to this path on the controller VM acting as the leader during installation: /opt/anypoint/runtimefabric/installer.tar.gz. This will skip downloading the latest package from Anypoint control plane.

In Runtime Fabric on VMs / Bare Metal, the inbound load balancer runs in either shared or dedicated mode:

  • Shared Mode enables you to specify the number of CPU cores and amount of memory for the internal load balancer. In shared mode, the internal load balancer is distributed across the controller nodes. Shared Mode is the default setting.

  • Dedicated Mode specifies that all available resources are dedicated to the internal load balancer, so you cannot choose the number of CPU cores and memory amount. In dedicated mode, the internal load balancer is deployed on dedicated internal load balancer nodes.

Refer to Manage Runtime Fabric for detailed information.

Use the ./generate-configs.sh script to generate the environment variables for each VM.

  1. Copy the command below in a text editor and fill in the values of each variable inside the single quotes. Add and define any additional variables if required. A common example is if an HTTP proxy is required for outbound internet connectivity.

    RTF_CONTROLLER_IPS='' \
    RTF_WORKER_IPS='' \
    RTF_DOCKER_DEVICE='' \
    RTF_ETCD_DEVICE='' \
    RTF_ACTIVATION_DATA='' \
    RTF_MULE_LICENSE='' \
    ./generate-configs.sh
  2. Open a shell/SSH on the controller VM and navigate to the manual sub-directory from the unzipped directory.

  3. Copy the command from your text editor, paste it in the terminal, and run the command on the controller VM. The script should output a set of instructions and a script to run on each VM, categorized by the IP address of each VM. You may need to scroll up to see the outputted instructions.

    1. Execute the snippet on each VM based upon its IP address to apply the required environment variables.

    2. On each VM, copy the ./scripts/init.sh file to /opt/anypoint/runtimefabric, and ensure the script is executable. The script below assumes the present working directory contains the unzipped directory rtf-install-scripts.

      mkdir -p /opt/anypoint/runtimefabric && cp ./rtf-install-scripts/scripts/init.sh /opt/anypoint/runtimefabric/init.sh && chmod +x /opt/anypoint/runtimefabric/init.sh
  4. Run the init.sh script in privileged mode on the controller VM.

    You must have root privileges to run the init.sh script.
    sudo /opt/anypoint/runtimefabric/init.sh
  5. Wait until the installation has successfully completed the pre-flight checks. The output should continue past the Execute preflight checks message to indicate the checks have passed:

    ...
    Tue Aug 14 02:28:54 UTC Starting the installation
    Tue Aug 14 02:28:56 UTC Operation has been created
    Tue Aug 14 02:28:57 UTC Execute preflight checks
    Tue Aug 14 02:29:48 UTC Configure packages for all nodes
    Tue Aug 14 02:29:59 UTC Bootstrap all nodes
    ...
  6. Execute the init.sh script in privileged mode on all the other VMs. This step can be performed on each VM concurrently.

    sudo /opt/anypoint/runtimefabric/init.sh
  7. If the installation process encounters an error, it exits with a message to help indicate how to resolve the error. In most cases, errors can be resolved by updating one or more variables to a valid value, and re-running the init.sh script.

    This step will install Runtime Fabric on VMs / Bare Metal across all VMs to form a cluster. It may take 15-25 minutes or longer to complete.

    When the installation completes successfully, the file /opt/anypoint/runtimefabric/.state/init-complete is created.

    The internal load balancer is distributed across the controller nodes for shared mode and is deployed on the internal load balancer nodes for dedicated mode.

Monitoring Installation Progress

If the forground parameter was passed when running the init.sh script, the install logs will output on the terminal. Otherwise to view the progress during the installation, you can tail the output log on each VM:

  1. Open another shell (or SSH session) to the VM.

  2. Tail the output log, located at /var/log/rtf-init.log

    tail -f /var/log/rtf-init.log
You can tail the same log on each VM to view its progress.

When the installation completes successfully, the file /opt/anypoint/runtimefabric/.state/init-complete is created.

Access Ops Center

After installation is completed successfully, login to Ops Center to view that status of your Runtime Fabric infrastructure. See Using Ops Center on Anypoint Runtime Fabric for information on accessing Ops Center and determining the Ops Center username and password.

Common Errors

If the installation process encounters an error, it’ll exit with a message to help indicate how to resolve the error. In most cases, errors can be resolved by updating one or more values in the /opt/anypoint/runtimefabric/env file to the correct value, and re-running the init.sh script.