![Will Foster](/assets/img/avatar_default.png)
Fixes for this patchset: - split out elk-openstack-client.yml to match what's done elsewhere Fixes for patchset #11: - split out filebeat into separate role for openstack clients - update README.md to use elk-openstack-client.yml for this purpose - cleanup filebeat.yml.j2 to use correct syntax (no need for " anymore) Fixes for patchset #10: - add SELinux boolean "httpd_can_network_connect" - add libsemanage-python package dependency for booleans Fixes for patchset #9: - fix for RHEL7 clients, we need to specify remote EPEL rpm - RHEL7 clients need rpm_key module to import EPEL GPG key - switch to using uri module instead of curl for checking elasticsearch indices - add python-httplib2 dependency (needed for uri module) - use curl -XPOST instead of PUT for filebeat index template in elasticsearch Fixes from patchset #7 - remove unneeded rpm usage, switch to yum module - add logic to heapsize tuning so systems > 64G of memory will never exceed the 32G recommended heapsize - logic fix for prepopulating local logs into logstash - remove elasticsearch.yml, rpm provides this and we're not customizing it yet Fixes from patchset #6: - use yum repo Ansible module where we can - remove unecessary EPEL installation (only nginx needs it) - disable EPEL repo after installation to avoid OpenStack breakage This adds: (ELK Server) - Automated ELK stack deployment - SSL client generation - Heap size tuning (1/2 of available memory) - Firewall port additions (depending on active or not) - Supports either firewalld or iptables-services - Additional upstream Filebeat Kibana dashboards (ELK Client) - Sets up filebeat with appropriate SSL certificates - utilizes both hostnames and SubjectAltName support (for environments without DNS services). (Usage) ansible-playbook -i hosts install/elk.yml ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X' Change-Id: Iee29f985e0bbcdf706ad869f132d4c0f1593a6b6
3.7 KiB
Table of Contents
Ansible for Browbeat
Currently we support Ansible 1.9.4 within browbeat-venv and ansible 2.0 for installation.
Playbooks for:
- Installing Browbeat, collectd, connmon, ELK stack and 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 gen_hosts.sh script to generate your overcloud's hosts file for ansible and generate a "jumpbox" ssh config:
# ./gen_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 # 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 file to ensure the correct parameters are passed.
# ansible-playbook -i hosts install/collectd-openstack.yml
To install collectd on everything other than Openstack machines, view the README for collectd-generic.
Install Connmon
Requires Ansible 2.0
# ansible-playbook -i hosts install/connmon.yml
Install ELK Stack
ansible-playbook -i hosts install/elk.yml
Install ELK Clients
ansible-playbook -i hosts install/elk-openstack-client.yml --extra-vars 'elk_server=X.X.X.X'
- elk_server variable will be generated after the ELK stack playbook runs
Install graphite service
# ansible-playbook -i hosts install/graphite.yml
Install grafana service
Prior to installing grafana, please review install/group_vars/all file and your ansible inventory file
# ansible-playbook -i hosts install/grafana.yml
Install Grafana Dashboards (Requires a Grafana Server)
Review install/group_vars/all before deploying the grafana dashboards
# ansible-playbook -i hosts install/dashboards-openstack.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"