Satperf
Collection of Automation/Tools for Performance Analysis/Testing of Satelite 6
Install / Use
/learn @redhat-performance/SatperfREADME
satellite-performance
What is satellite-performance
This project was started to run performance tests on Red Hat Satellite 6. It does the following activities:
- Satellite installation
- Uploads manifest, updates repo
- Concurrently syncs multiple repositories from repo server
- Creates lifecycle environments
- Creates capsules
- Concurrently syncronizes multiple capsules
- ..etc
It also provides a way to measure time for tests while capturing resources using collectd.
Ansible for satellite-performance
Ansible is used to perform most of the work. There are playbooks for:
- Installing satellite
- Installing capsule
- Registering containers as hosts to capsule
- Install katello-agent and run errata
- Sync content
- Puppet module update
Installation
Prerequisities
You need Ansible installed.
For some playbooks, you might need extra roles and collections installed:
$ ansible-galaxy role install -r requirements.yml
$ ansible-galaxy collection install -r requirements.yml
Configuration
-
Before running satellite-performance, check
conf/satperf.yaml, and createconf/satperf.local.yamland configure any overrides there (e.g. RHSM credentials, Satellite setup details etc). -
Make sure that all hosts you are going to use have SSH certificate deployed for user root and private certificate is configured in your
conf/satperf.local.yaml. -
Save your Satellite manifest as
conf/manifest.zipor elsewhere and configure path in yourconf/satperf.local.yaml. -
If you are going to use satperf to setup your docker hosts, pay special attention to their partitioning. There are few very simple pre-created roles like:
playbooks/satellite/roles/docker-host-kvm-partitioningand.../docker-host-ec2-partitioning. Please choose one or create new one byt settingdocker_host_partitioningin config to "kvm" or "ec2" or add new one and alterplaybooks/satellite/docker-host.yaml
Usage
To prepare Docker hosts:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/docker/docker-host.yaml
To prepare Satellite:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/common/common.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/satellite-capsule_common.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/satellite_specific.yaml
To prepare Capsules:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/common/common.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/satellite-capsule_common.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/capsules_specific.yaml
To install Collectd:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/monitoring/collectd-generic.yaml --tags "satellite6"
...Replace "satellite6" with whatever machines you intend to install collectd on.
To install collectd->graphite dashboards:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/monitoring/dashboards-generic.yaml
If collectd fails to send metrics to your grafana instance
You might wanna check the selinux policies. Try one of the following to counter "Permission Denied" log statement:
# setsebool -P collectd_tcp_network_connect 1
OR
# audit2allow -a
# audit2allow -a -M collectd_t
# semodule -i collectd_t.pp
OR
# semanage permissive -a httpd_t
..or all.
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
