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
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
You need Ansible installed.
For some playbooks, you might need extra roles installed:
ansible-galaxy role install -r requirements.yml
Before running satellite-performance, check
conf/satperf.yaml, and create
conf/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
Save your Satellite manifest as
conf/manifest.zipor elsewhere and configure path in your
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:
.../docker-host-ec2-partitioning. Please choose one or create new one byt setting
docker_host_partitioningin config to "kvm" or "ec2" or add new one and alter
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/satellite/installation.yaml --skip-tags "non-async"
To prepare Capsules:
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/capsules.yaml --skip-tags "non-async"
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
# audit2allow -a # audit2allow -a -M collectd_t # semodule -i collectd_t.pp
# semanage permissive -a httpd_t