Guide That Contains This Content
[+] Expand All
[-] Collapse All

    Installing AppFormix for an OpenStack Cluster

    Getting Started with OpenStack

    AppFormix provides resource control and visibility for hosts and virtual machines in an OpenStack cluster.

    This topic explains how to install AppFormix for an OpenStack cluster. See the AppFormix General Requirements before reading this section.


    • Supported OpenStack versions: Icehouse, Juno, Kilo, Liberty, Mitaka, Newton, Ocata

    • An administrator account for OpenStack.

    • API access to OpenStack services: Cinder, Glance, Heat, Keystone, Neutron, Nova, and Swift. AppFormix reads information from these services. The administrator account must provide sufficient permission for read-only API calls. Further, AppFormix Platform must be able to open connections to the host and port on which these services listen. AppFormix can be configured to use the admin, internal, or public service endpoints. See OS_ENDPOINT_TYPE in OpenStack environment variables in the section Installing AppFormix, Step 3.

    Workflow in Three Steps

    Installation consists of the following steps:

    1. Configure OpenStack.
    2. Create Ansible inventory.
    3. Install AppFormix.

    Configuring OpenStack

    AppFormix reads information about all projects configured in your OpenStack cluster. The software requires administrator privilege. We recommend you create a new administrator account for AppFormix. If you do not create a new administrator account, then you must provide the username and password of an existing administrator account during the configuration of AppFormix.

    To create an administrator account for AppFormix, perform the following steps in the OpenStack Horizon dashboard:

    1. Create a user account and name it appformix.
    2. Select a new project for the user account.
    3. Select role as admin.

    Creating Ansible Inventory

    Ansible is used to deploy the software to the compute node(s) and the controller host. An Ansible inventory file describes groups of hosts in your cluster. Define the inventory in a separate location than the release files, so that the inventory may be reused for an upgrade.

    AppFormix requires two groups compute and appformix_controller. Each group lists the hosts in that group. Only the agent is installed on the compute hosts. The agent and the AppFormix platform services are installed on the appformix_controller host.

    Optionally, an openstack_controller group can be defined. The agent is installed on hosts in this group to monitor the hosts that execute OpenStack controller services. (New in v2.3.0)

    Create a directory inventory (or name of your choice) that contains a hosts file and a group_vars/all file. For example:

        hosts           # inventory file
            all         # configuration variables

    The inventory/hosts file contains the list of hosts in each group. For example:


    See Ansible inventory documentation.

    Ansible Configuration Variables

    The AppFormix software includes a number of Ansible roles to perform the configuration of AppFormix settings. Define the values of variables in the inventory/group_vars/all file, in order to be able to use the settings and inventory for future upgrades.

    In the inventory/group_vars/all file, configure the following variables for installation of AppFormix for OpenStack.

    appformix_license: /path/to/license_file
        - /path/to/appformix-platform-images-<version>.tar.gz
        - /path/to/appformix-dependencies-images-<version>.tar.gz
        - /path/to/appformix-openstack-images-<version>.tar.gz

    Refer to Platform Dependencies for steps to install dependencies on a platform host that cannot fetch files from the Internet.

    Configuring an HTTP Proxy for Fetching Prerequisites

    The Ansible playbook will fetch files from the Internet to install prerequisites on the platform host. If the platform host requires an HTTP proxy to access the Internet, configure the following variables in inventory/group_vars/all:

    http_proxy_url: ''
            http_proxy: '{{ http_proxy_url }}'
            https_proxy: '{{ http_proxy_url }}'

    The prerequisites_env is a dictionary that defines environment variables that will be used when invoking commands to install prerequisites. In the above example, the same proxy URL ( is used for both the http_proxy and https_proxy environment variables because the single proxy can be used to access HTTP and HTTPS URLs. As a convenience, the proxy URL is defined once in the http_proxy_url variable. Adjust prerequisites_env as necessary for the proxy requirements of your network.

    Installing AppFormix

    The following commands should be executed on the host from which Ansible will be run. This may be the controller host, or any host with Ansible and SSH access to the compute node(s) and the controller host.

    1. Copy the following files to the host on which Ansible playbooks will be executed. The path of the images files should match the configuration setting made in the Ansible inventory. See the Ansible configuration variables.

    2. Unpack the tarball, and change to the created directory:

      tar xzf appformix-<version>.tar.gz
      cd appformix-<version>
    3. AppFormix must be configured to communicate with the OpenStack cluster. The Ansible playbooks use OpenStack environment variables to configure AppFormix with details of the OpenStack environment.

      OS_AUTH_URL             Keystone URL (e.g., https://host:5000/)
      OS_ENDPOINT_TYPE        endpoint type to communicate with service (default: publicURL)
      OS_USERNAME             admin account to be used by AppFormix
      OS_PASSWORD             password for admin account
      OS_PROJECT_NAME         admin project created for AppFormix account
      OS_PROJECT_DOMAIN_NAME  domain for admin project
      OS_USER_DOMAIN_NAME     domain for admin user
      OS_DOMAIN_NAME          (optional) use domain-scoped token for admin account
    4. Source an openrc file that contains the Step 3 environment variables and ensure the variables are in the environment of the shell from which ansible-playbook is run. Then, install AppFormix by executing the appformix_openstack.yml playbook. Specify the path to the inventory directory that you created earlier.

      source ~/openrc
      ansible-playbook -i /path/to/inventory appformix_openstack.yml
    5. Open the AppFormix Dashboard in a Web browser. For example:


      Select Skip Installation because the initial configuration was performed by Ansible using the OpenStack environment variables in Step 3. Log in to AppFormix Dashboard using OpenStack Keystone credentials.

    Upgrading AppFormix for an OpenStack Cluster

    AppFormix can be easily upgraded by running the appformix_openstack.yml playbook of the new release. Follow the same procedure as the installation.

    Uninstalling AppFormix from an OpenStack Cluster

    If you want to uninstall AppFormix and destroy all data, execute the following command:

    ansible-playbook -i <inventory_file> clean_appformix_openstack.yml

    Modified: 2018-05-23