This project was started to run performance tests on Red Hat Satelitte. It does the following activities:
- Satelitte installation
- Uploads manigfest, 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 pbench
Ansible is used to perform most of the work. There are playbooks for:
- Installing satellite
- Installing capsule
- Registering containers as hosts to capsule
- Install ketello-agent and run errata
- Sync content
- Puppet module update
This is a Python 2 based project.
Install pip, virtualenv and run source ./setup from root.
The above script does the following:
- exports
ANSIBLE_CONFIG=$PWD/conf/ansible.cfg - checks for RPM packages:
gcc python-devel openssl-devel libffi-devel - check for virtualenv settings
-
Before running satellite-performance, check
conf/satperf.yaml, and createconf/satperf.local.yamland configure any owerrides there (e.g. RHN 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 sateperf to setup your docker hosts, pay special attention to their partitioning. In setup satperf uses, we need empty disk partition (
/dev/vda3by default) where LVM logical group "docker" will be created and docker will be configured to use that. There are two very simple pre-created roles for that: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
For help:
(venv) $ ./satperf.py -h
Example, for installation, run:
(venv) $ ./satperf.py -s
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/docker-host.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/installation.yaml
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/satellite/capsules.yaml
$ 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.
$ ansible-playbook --private-key conf/id_rsa -i conf/hosts.ini playbooks/monitoring/dashboards-generic.yaml
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.