1. Intro
Satperf (link) is a Red Hat Satellite Performance Benchmarking & Automation tool that makes it super easy to quickly setup your own environment with satellite components and start running workloads. It uses ansible playbooks to manage remote execution and has built-in modules for various roles that Satellite Web UI has to offer. These are carried out with the use of hammer commands (read more on Hammer) as an equivalent of Satellite API.
Briefly, it does the following activities:
- Satellite installation and monitoring
- uploads manifest, updates repo
- concurrently syncs multiple Repositories from Repo Server
- creates lifecycle environments
- creates capsules
- concurrently syncronizes multiple capsules
- ..etc
Satperf runs modules through ansible playbooks, briefly described below under ‘Ansible Playbooks in Satperf` section.
2. Satperf setup
This is to get the satellite installation + monitoring tools up and running.
Although there’s a README included with the project, let’s briefly go through steps needed and get an install up and running.
It isn’t packaged right now, so first, clone this satperf repo.
2.a. PREREQUISITES
From project root, run: $ source ./setup
, follow the output and act accordingly (install packages / activate virtualenv).
Ensure that satperf help command succeeds: $ ./satperf.py -h
2.b CONFIGURATION
The above step should get the setup ready for configurations. Now, configure following files in the manner illustrated:
- Add configurations specific to Ansible
1 2 |
|
- Add [FQDN / hostnames / IP Addresses] for your installation. Follow the ansible inventory file pattern, as shown by sample contents of this file.
1 2 3 4 5 6 7 8 |
|
conf/satperf.conf
: Add configurations specific to satperf.
1 2 3 4 5 6 7 8 9 10 11 |
|
For now, leave the sections [RHN], [Satellite], [Pbench]
untouched.
In this post, we’re only configuring satellite monitering module of satperf.
2.c SATELLITE INSTALLATION
If you already have the satellite setup running, skip below to ‘MONITORING INSTALLATION’.
Run $ ./satperf.py -s
You’d be asked the following, press [Enter] or type ‘n’ to skip, if the component’s already installed, or you don’t want it.
1 2 3 4 5 |
|
Ignore any other components shown in menu, if so.
Although we’ve tested this internally and it works, but since this is currently WIP, take a look at logs if something fails, or feel free to open an issue upstream.
2.c MONITORING INSTALLATION
Run $ ./satperf.py -m
You’d be asked the following, press [Enter] or type ‘n’ to skip, if the component’s already installed, or you don’t want it.
1 2 3 4 5 6 7 8 |
|
Although we’ve tested this internally and it works, but since this is currently WIP, take a look at logs if something fails, or feel free to open an issue upstream.
2.d FINAL STEPS (WIP)
Build the dashboards viewable, through Grafana, by running $ ./satperf.py -i
WIP status: facing an error in this step, similar to this one
Ansible Playbooks in Satperf
2 major categories:
Satellite
- Setup (either AWS or normal environements)
- Satellite
- Capsules
- Docker hosts (N content hosts per docker host)
- Satutils
- healthcheck
- Setup (either AWS or normal environements)
Monitoring
- Collectd
- Graphite
- Grafana
Playbook: Monitoring
For a description of metrics we collect about Satellite installation, refer to this post
Collectd: role description
Installs collectd on either/all of: satellite / capsule / docker-hosts
Graphite: role description
Installs Graphite time-series database for metric storage of collected metrics on the configured graphite host
Grafana: role description
Installs Grafana time-series metric visualization framework, on the configured grafana host
Playbook: Satellite
Setup: role description
- common
- rhsm
- setup
- pbench_client (WIP)
- satellite-populate
Satutils: role description (WIP)
- backup
- upload-manifest
- restore
- add-product
- create-lifecycle
- enable-content
- content-view-create
- content-view-publish
- content-view-promote
- sync-content
- sync-capsule
- register
- status_check
Health check: role description (WIP)
We plan to integrate this github project - sat6_healthCheck
Blog roll: More on Satellite itself
From Satellite’s latest release:
Red Hat Satellite 6.2 is now generally available, and includes the following major enhancements:
- Enhanced container management with RHEL Atomic
- New remote configuration management for managed hosts
- bootstrap.sh support for configuration management and host migration
- The ability to change disconnected environments to connected
- Inter-Satellite synchronization for content
PXE-less discovery for existing systems