Contact Us 1-800-596-4880

Installing Runtime Fabric Manually

This topic describes how to manually install 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 you’ve met following criteria before beginning the installation:

  • You have created a Runtime Fabric in Runtime Manager.

  • The necessary hardware has been provisioned as outlined in Anypoint Runtime Fabric on VMs / Bare Metal Installation Prerequisites.

  • The required disks are listed as block devices for each VM. The disks should not be mounted or formatted.

  • The necessary ports are open and hostnames are added to allowlists as described in Anypoint Runtime Fabric on VMs / Bare Metal Installation Prerequisites.

  • You have disabled any antivirus agents, such as McAfee, running in your environment.

  • You have reviewed the requirements for load balanacing. 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.

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.

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.

  1. Base64 encode the new Mule .lic license file provided by MuleSoft:

    • On MacOS, run the following command in the terminal:

      BASE64_ENCODED_LICENSE=$(base64 -b0 license.lic)
    • On Unix, run the following command:

      BASE64_ENCODED_LICENSE=$(base64 -w0 license.lic)
    • On Windows, choose one of the following:

      • Use a WSL or Cygwin shell that includes the base64 tool and use the above Unix command.

      • Use the base64.exe program included with Windows git (C:\Program Files\Git\usr\bin).

      • Use the following Powershell command:

        $BASE64_ENCODED_LICENSE=[convert]::ToBase64String((Get-Content -path "license.lic" -Encoding byte))

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

Download the Install Scripts

Download the scripts ZIP file on the controller VM that will act as the leader in the installation.

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.

  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 -L {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.

Generate the Variables for Installation and Run the Install Scripts

You must run the install scripts from a Bash shell.

  1. Familiarize yourself with the variables needed for installation.

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

  3. Copy the command below in a text editor and fill in the values of each variable inside the single quotes. Add and define any optional variables if required. A common example is if you require an HTTP proxy 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
  4. Open a shell/SSH on the controller VM and navigate to the manual sub-directory from the unzipped directory.

  5. 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
  6. 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
  7. 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
    ...
  8. 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
  9. 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.

Variables to Define

Use the following required variables to install Rutime Fabric.

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

disable_selinux

A boolean variable that disables/enables SELinux on the host operating system. The default value is true to disable SELinux.

If the host operating system is RHEL 8, do not set to false or installation will fail.

true

RTF_PRIVATE_INTERFACE

Allows private IP address to be discovered from the network interface.

eth0

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.