2c1980e023
Refactoring lib/Shaker to improve compatibility with a wide range of shaker scenarios. set_scenario() method has been fixed to remove hard coded expectations on the order of accommodation list. send_to_elastic() method has also been fixed accordingly for imporved compatibility when indexing a large number of shaker scenarios. Why? The current model of overwriting the shaker scenario file with values supplied from the browbeat-config works well for a major set of shaker scenario files. However, the problem comes with how we overwrite/work with "accomodation" key in the shaker scenario. Since the value for the accomodation is a list, we need to access the list items to modify them[2]. Most scenario files sudh as [1] have 4 values in the list but some such as [3] have only 3 items, so we cannot be sure the list item we are accessing is the one we want to if we are going by list item number. How? Added two methods accommodation_to_dict() and accommodation_to_list(). accommodation_to_dict() grabs the accommodation data from shaker scenario file[1] and converts the list to a dictionary. Since it is now a dictionary we overwrite shaker scenario values for key "accommodation" by checking what keys exist in the dictionary. accommodation_to_list() converts the dictionary we created by overwrirting arguments in shaker scenario with those in browbeat scenario to a list again, so that it can be written back the shaker scenario file. Shaker eventually consumes this file which has been overwritten by the options in browbeat config. + Adding external_host parameter + Adding validation + Adding usage docs + RST Formatting [1] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/dense_l3_north_south.yaml#L11 [2] - https://github.com/openstack/browbeat/blob/master/lib/Shaker.py#L201 [3] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/external/dense_l3_north_south_with_fip.yaml#L11 Change-Id: Icf7208f230cbe727d525b6cb090e82c4f19d6985
127 lines
3.9 KiB
ReStructuredText
127 lines
3.9 KiB
ReStructuredText
============
|
|
Installation
|
|
============
|
|
|
|
Installing Browbeat and running the Overcloud checks can be performed
|
|
either from your local machine or from the undercloud. The local machine
|
|
install/check assumes you have ansible installed already.
|
|
|
|
Before running Browbeat
|
|
-----------------------
|
|
|
|
- Execute the ansible/generate_tripleo_hostfile.sh script (builds ssh-config file)
|
|
- Configure browbeat-config.yaml to match your tests
|
|
- (Optional) Set your Openstack version metadata in metadata/version.json
|
|
|
|
Currently Keystone Dashboards only depend on osp_series but may be extended to show
|
|
build date in the future, thus build is also provided but not required. You can
|
|
add whatever other version related metadata you would like to metadata/version.json.
|
|
Typically, whatever automation you have to produce builds should provide this file.
|
|
|
|
What is necessary
|
|
-----------------
|
|
|
|
- Ansible
|
|
|
|
Why? We started with using bash to make changes to the Overcloud,
|
|
creating complex sed/awks that we get for free with Ansible (for the
|
|
most part). Other monitoring and stress test tools are installed by
|
|
the respective playbooks when run.
|
|
|
|
Install Browbeat from your local machine
|
|
----------------------------------------
|
|
|
|
From your local machine
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
$ ssh-copy-id stack@<undercloud-ip>
|
|
$ git clone https://github.com/openstack/browbeat.git
|
|
$ cd browbeat/ansible
|
|
$ ./generate_tripleo_hostfile.sh <undercloud-ip>
|
|
$ vi install/group_vars/all.yml # Make sure to edit the dns_server to the correct ip address
|
|
$ ansible-playbook -i hosts install/browbeat.yml
|
|
$ vi install/group_vars/all.yml # Edit Browbeat network settings
|
|
$ ansible-playbook -i hosts install/browbeat_network.yml # For external access(required to build Shaker image)
|
|
$ ansible-playbook -i hosts install/shaker_build.yml
|
|
|
|
.. note:: ``browbeat-network.yml`` will more than likely not work for you
|
|
depending on your underlay/overlay network setup. In such cases, user needs
|
|
to create appropriate networks for instances to allow them to reach the
|
|
internet.
|
|
|
|
(Optional) Install collectd
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
$ ansible-playbook -i hosts install/collectd-openstack.yml
|
|
|
|
(Optional) Install collectd->graphite dashboards
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
$ ansible-playbook -i hosts install/grafana-dashboards.yml
|
|
|
|
(Optional) Install connmon
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
$ ansible-playbook -i hosts install/connmon.yml
|
|
|
|
|
|
Install Browbeat directly on undercloud
|
|
---------------------------------------
|
|
|
|
From your undercloud
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
$ ssh undercloud-root
|
|
[root@ospd ~]# su - stack
|
|
[stack@ospd ~]$ git clone https://github.com/openstack/browbeat.git
|
|
[stack@ospd ~]$ cd browbeat/ansible
|
|
[stack@ospd ansible]$ ./generate_tripleo_hostfile.sh localhost
|
|
[stack@ospd ansible]$ sudo easy_install pip
|
|
[stack@ospd ansible]$ sudo pip install ansible
|
|
[stack@ospd ansible]$ vi install/group_vars/all.yml # Make sure to edit the dns_server to the correct ip address
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/browbeat.yml
|
|
[stack@ospd ansible]$ vi install/group_vars/all.yml # Edit Browbeat network settings
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/browbeat_network.yml
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/shaker_build.yml
|
|
|
|
(Optional) Install collectd
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/collectd-openstack.yml
|
|
|
|
(Optional) Install collectd->graphite dashboards
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/dashboards-openstack.yml
|
|
|
|
(Optional) Install connmon
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts install/connmon.yml
|
|
|
|
Run Overcloud checks
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
[stack@ospd ansible]$ ansible-playbook -i hosts check/site.yml
|
|
|
|
Your Overcloud check output is located in results/bug_report.log
|
|
|