Plugins for OpenStack-Ansible
Go to file
Kevin Carter 94c93e533f
Correct severe performance problem
When running our plugins we're seeing a severe performance impact in
the ansible run-time. As it turns out, within the linear strategy we're
looping over all physical hosts in an environment and pulling address
information out to store as a task variable. This action causes all
tasks to reload all {group,host}_vars for all hosts and that repetitive
action results in a massive slowdown, especially when there are many
hosts within the inventory.

Results from a normal OSA playbook run on 50 hosts:
  time openstack-ansible openstack-hosts-setup.yml --forks 15
  real    37m44.263s
  user    35m30.984s
  sys     2m23.252s

Results with the strategy plugin disabled on 50 hosts:
  time ANSIBLE_STRATEGY_PLUGINS=false openstack-ansible openstack-hosts-setup.yml --forks 15
  real    5m8.641s
  user    6m30.792s
  sys     1m32.512s

This change scopes the physical host look up to the task and target host
and adds conditionals around the process to ensure we're not forcing a lookup
that has no chance of succeeding.

Results with this patch applied on 50 hosts and no forks:
  time openstack-ansible openstack-hosts-setup.yml
  real    6m40.573s
  user    7m53.336s
  sys     1m25.828s

Should anything like this come up again debug statements have been added
to the method so that we can enable verbose mode and know what is being
parsed.

Change-Id: I76af71ffe19b2a8afb18ed731f1362a4e399c613
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-07-11 19:06:00 -05:00
action Retain the ordering when using with MultiStringOp 2018-03-22 14:35:08 +00:00
callback Remove debug_message_collector plugin 2017-09-08 12:46:52 -05:00
connection Fix connection plugin to work with Ansible 2.6.0 2018-07-04 12:50:08 +01:00
doc Updated spice-html5 git repository URL 2018-06-06 07:23:01 +02:00
examples Trivial: Fix the pep8 warning 2018-05-08 17:30:51 +08:00
filter Add a get_nested filter 2017-07-07 19:42:39 +00:00
library Remove the dist_sort module 2018-06-24 14:29:44 +00:00
lookup Remove *.txt file content from py_pkgs lookup output 2018-06-28 09:45:16 +01:00
meta Add OpenStack-Ansible metadata 2017-10-12 10:24:57 +00:00
releasenotes Remove distro package indexing from py_pkgs lookup 2018-05-09 11:23:52 +01:00
strategy Correct severe performance problem 2018-07-11 19:06:00 -05:00
tests Update physical host mapping for ansible 2.4+ 2018-06-26 06:30:59 +00:00
zuul.d Trivial: Fix the pep8 warning 2018-05-08 17:30:51 +08:00
.gitignore Updated from OpenStack Ansible Tests 2018-03-27 15:57:51 +00:00
.gitreview Updated repo for new org 2016-01-27 10:31:29 -06:00
CONTRIBUTING.rst [DOCS] Cleanup the role docs for consistency and clarity 2016-03-07 17:38:19 -05:00
LICENSE Update LICENSE file 2016-02-01 16:47:07 +00:00
README.rst Update links in README 2018-03-03 13:02:21 +08:00
Vagrantfile Updated from OpenStack Ansible Tests 2018-06-06 00:45:07 +00:00
bindep.txt Updated from OpenStack Ansible Tests 2017-12-06 00:06:54 +00:00
manual-test.rc Use centralised test scripts 2016-09-28 12:04:13 +01:00
run_tests.sh Updated from OpenStack Ansible Tests 2018-04-30 05:17:15 +00:00
setup.cfg Update URLs in documents according to document migration 2017-07-14 09:47:00 +08:00
setup.py Updated from global requirements 2017-03-02 11:52:19 +00:00
tox.ini Use tests repo for common role test requirements 2018-07-02 11:56:53 -04:00

README.rst

Team and repository tags

image

OpenStack-Ansible plugins

These are the plugins the OpenStack-Ansible deployment project relies on. The plugins can be added to any Ansible project by simply cloning this repository and setting up the ansible.cfg file to point at them as additional plugins for your project.