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, orpublicservice endpoints. SeeOS_ENDPOINT_TYPEin OpenStack environment variables in the section Installing AppFormix, Step 3.
Workflow in Three Steps
Installation consists of the following steps:
- Configure OpenStack.
- Create Ansible inventory.
- 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:
- Create a user account and name it appformix.
- Select a new project for the user account.
- Select role as admin.
Creating Ansible Inventory
Ansible is used to deploy the software to the compute node(s) and the Platform 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:
inventory/
hosts # inventory file
group_vars/
all # configuration variablesThe inventory/hosts file contains
the list of hosts in each group. For example:
[appformix_controller] appformix01 [compute] compute01 compute02 compute03 [openstack_controller] openstack_infra01 openstack_infra02
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
appformix_docker_images:
- /path/to/appformix-platform-images-<version>.tar.gz
- /path/to/appformix-dependencies-images-<version>.tar.gz
- /path/to/appformix-openstack-images-<version>.tar.gzRefer 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.example.com:1234'
prerequisites_env:
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 (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 Platform Host, or any host with Ansible and SSH access to the compute node(s) and the Platform Host.
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.
appformix-<version>.tar.gz appformix-platform-images-<version>.tar.gz appformix-dependencies-images-<version>.tar.gz appformix-openstack-images-<version>.tar.gz
Unpack the tarball, and change to the created directory:
tar xzf appformix-<version>.tar.gz cd appformix-<version>
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
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.ymlplaybook. Specify the path to theinventorydirectory that you created earlier.source ~/openrc ansible-playbook -i /path/to/inventory appformix_openstack.yml
Open the AppFormix Dashboard in a Web browser. For example:
http://appformix01:9000/appformix
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
