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.

Requirements

  • 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:

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.

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:

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 (http://proxy.example.com:1234) 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:

  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.

  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.

  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: