2ba39b30ab
This commit does several things at once: - Use ansible_distribution_major_version to detect which version of the EPEL repository. So we dont have to hard code the URL for either epel7 or epel 8. - Remove "stein" workaround for colelctd-openstack role. The "stein" workaround has been removed in favor of running the collectd daemon in a podman container. - Drop opendaylight support for collectd since it is no longer suupported. - Add the collectd playbook so we can run collectd in a centos 7 container going forward for "train". This commit still needs to be tested on "stein" but it will probably work anyways. - Add browbeat-containers to tox.ini for flake8 - Simplify detection of docker or podman for older versions of OSP. (sai) - Fixed typo from compute_compute to collectd_compute that caused failures on computes - clear graphite_host in install/group_vars/all.yml - Move container DockerFiles into brwobeat tree - Conditionally copy required Dockerfiles to node instead of git clone - Fix up some log file paths - Use Docker/Podman depending on release - Provide single interface(collectd.yml) which has container and baremetal playbooks - Introduce variable collectd_container in install/group_vars/all - remove unneeded selinux rebaelling (already running as priveleged) when running container - remove unneed hostfs mount - collectd container logs to file instead of STDOUT for easier debug - add collectd-ping package to collectd-openstack Dockerfile - Improve docs to reflect changes - dynamically set rabbitmq and swift paths as well for tail plugin Co-Authored-By: Sai Sindhur Malleni <smalleni@redhat.com> Change-Id: I627a696f6f1240d96a0e1d85c26d59bbbfae2b1b Signed-off-by: Charles Short <chucks@redhat.com> Signed-off-by: Sai Sindhur Malleni <smalleni@redhat.com>
252 lines
7.2 KiB
ReStructuredText
252 lines
7.2 KiB
ReStructuredText
Table of Contents
|
|
=================
|
|
|
|
- `Ansible for Browbeat <#ansible-for-browbeat>`__
|
|
|
|
- `Getting Started <#getting-started>`__
|
|
- `Ansible Installers <#ansible-installers>`__
|
|
- `Performance Check <#performance-check>`__
|
|
- `Performance Tune <#performance-tune>`__
|
|
- `Adjust your overcloud <#adjust-your-overcloud>`__
|
|
|
|
Ansible for Browbeat
|
|
====================
|
|
|
|
Currently we support Ansible 1.9.4 within browbeat-venv and Ansible 2.0+ for installation.
|
|
|
|
Playbooks for:
|
|
* Installing Browbeat, collectd, elk clients, graphite, grafana, and grafana dashboards
|
|
* Check overcloud for performance issues
|
|
* Tune overcloud for performance (Experimental)
|
|
* Adjust number of workers for cinder/keystone/neutron/nova
|
|
* Deploy keystone in eventlet/httpd
|
|
* Adjust keystone token type to UUID/Fernet
|
|
* Adjust neutron l3 agents
|
|
* Adjust nova greenlet_pool_size_max_overflow
|
|
|
|
Getting Started
|
|
---------------
|
|
|
|
Install your public key into stack's authorized\_keys
|
|
|
|
::
|
|
|
|
# ssh-copy-id stack@<undercloud-ip>
|
|
|
|
Then run generate\_tripleo\_hosts.sh script to generate your overcloud's
|
|
hosts file for ansible and generate a "jumpbox" ssh config:
|
|
|
|
::
|
|
|
|
# ./generate_tripleo_hostfile.sh <undercloud-ip> ~/.ssh/config
|
|
|
|
Review the hosts file the script generates.
|
|
|
|
Ansible Installers
|
|
------------------
|
|
|
|
Install Browbeat
|
|
''''''''''''''''
|
|
|
|
Image upload requires Ansible 2.0
|
|
|
|
::
|
|
|
|
# vi install/group_vars/all.yml
|
|
|
|
Edit ansible vars file (Installation parameters)
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/browbeat.yml
|
|
|
|
Install Collectd Agent (Requires a Graphite Server)
|
|
'''''''''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
Prior to installing the agent, please review install/group\_vars/all.yml
|
|
file to ensure the correct parameters are passed.
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/collectd.yml
|
|
|
|
To install collectd on everything other than Openstack machines, view
|
|
the `README for collectd-generic <README.collectd-generic.md>`__.
|
|
|
|
Install Kibana Visuals
|
|
''''''''''''''''''''''
|
|
|
|
Prior to installing the Kibana visuals, please review install/group\_vars/all.yml
|
|
file to ensure the correct parameters are passed.
|
|
|
|
::
|
|
browbeat_path - Point to the browbeat directory, default is /home/stack/browbeat
|
|
es_ip - Point to the ElasticSerach host, default is blank
|
|
es_kibana_index - Point to the correct Kibana index, default is .kibana
|
|
|
|
To Install Kibana Visuals
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/kibana-visuals.yml
|
|
|
|
|
|
Install Generic ELK Clients
|
|
'''''''''''''''''''''''''''
|
|
Filebeat (official Logstash forwarder) is used here unless you chose the
|
|
optional fluentd ``logging_backend`` option in ``install/group_vars/all.yml``. In this case
|
|
a simple rsyslog setup will be implemented.
|
|
|
|
::
|
|
|
|
ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X'
|
|
|
|
The ``elk_server`` variable will be generated after the ELK stack playbook runs,
|
|
but it's generally wherever you installed ELK. If you have an existing ELK
|
|
stack you can point new clients to it as well, but you'll want to place a new
|
|
client SSL certificate at the location of
|
|
``http://{{elk_server}}:{{elk_server_ssl_cert_port}}/filebeat-forwarder.crt``
|
|
|
|
Install ELK Clients for OpenStack nodes
|
|
'''''''''''''''''''''''''''''''''''''''
|
|
|
|
::
|
|
|
|
ansible-playbook -i hosts install/elk-openstack-client.yml --extra-vars 'elk_server=X.X.X.X'
|
|
|
|
Install graphite service
|
|
''''''''''''''''''''''''
|
|
|
|
When installing graphite, carbon-cache and grafana on a
|
|
director/rdo-manager undecloud host, Use the docker playbook instead of
|
|
this one. This playbook is intended for use when you have enough
|
|
resources to allocate dedicated systems for the graphing/stats related
|
|
services. Prior to installing grafana, please review
|
|
install/group\_vars/all.yml file and your ansible inventory file You
|
|
will need to define values for the grafana\_host and graphite\_host IP
|
|
addresses here. Optionally you can change the listening port for
|
|
graphite-web.
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/graphite.yml
|
|
|
|
Install graphite service as a docker container
|
|
''''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
Prior to installing graphite as a docker container, please review
|
|
install/group\_vars/all.yml file and ensure the docker related settings
|
|
will work with your target host. This playbook is ideal when installing
|
|
services on director/rdo-manager undercloud host(s).
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/graphite-docker.yml
|
|
|
|
Install grafana service
|
|
'''''''''''''''''''''''
|
|
|
|
When installing graphite, carbon-cache and grafana on a
|
|
director/rdo-manager undecloud host, Use the docker playbook instead of
|
|
this one. This playbook is intended for use when you have enough
|
|
resources to allocate dedicated systems for the graphing/stats related
|
|
services. Prior to installing grafana, please review
|
|
install/group\_vars/all.yml file and your ansible inventory file You
|
|
will need to define values for the grafana\_host and graphite\_host IP
|
|
addresses here. Optionally you can change the listening port.
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/grafana.yml
|
|
|
|
Install grafana service as a docker container
|
|
'''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
Prior to installing graphite as a docker container, please review
|
|
install/group\_vars/all.yml file and ensure the docker related settings
|
|
will work with your target host. This playbook is ideal when installing
|
|
services on director/rdo-manager undercloud host(s).
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/grafana-docker.yml
|
|
|
|
Install Grafana Dashboards (Requires a Grafana Server)
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
Review install/group\_vars/all.yml before deploying the grafana
|
|
dashboards
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts install/dashboards-openstack.yml
|
|
|
|
Gather Metadata
|
|
---------------
|
|
|
|
Run the gather playbook to gather metadata about how the OpenStack cloud is
|
|
currently configured. This playbook writes hardware(No. of CPUs etc),
|
|
software(OpenStack Configuration), environment(No. of controllers etc) metadata
|
|
files into the metadata directory which are transported to ElasticSearch along
|
|
with test results to provide context for the result data.
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts gather/site.yml
|
|
|
|
|
|
|
|
Performance Check
|
|
-----------------
|
|
|
|
Run the check playbook to identify common performance issues:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts check/site.yml
|
|
|
|
Performance Tune
|
|
----------------
|
|
|
|
Run the tune playbook to tune your OSPd deployed cloud for performance:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts tune/tune.yml
|
|
|
|
Adjust your overcloud
|
|
---------------------
|
|
|
|
To modify the number of workers each service is running:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts browbeat/adjustment-workers.yml -e "workers=8"
|
|
|
|
Openstack services will be running 8 workers per service.
|
|
|
|
To modify number of workers each service is running and ensure Keystone
|
|
is deployed in eventlet:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts browbeat/adjustment-workers.yml -e "workers=8 keystone_deployment=eventlet"
|
|
|
|
To run Keystone in httpd, change keystone\_deployment to httpd:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts browbeat/adjustment-workers.yml -e "workers=8 keystone_deployment=httpd"
|
|
|
|
To switch to fernet tokens:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts browbeat/adjustment-keystone-token.yml -e "token_provider=fernet"
|
|
|
|
To switch to UUID tokens:
|
|
|
|
::
|
|
|
|
# ansible-playbook -i hosts browbeat/adjustment-keystone-token.yml -e "token_provider=uuid"
|