5bf96da187
When generating host variable files for Kolla Ansible, we have some heavy usage of set_fact to set variables for network interfaces, in a play targeted at all hosts. There are also tasks using the fail action plugin to perform verification. At scale this has a significant impact, due to the number of tasks executed against all hosts. These tasks are executed at the beginning of many commands, so the scope is broad. There is also some tricky logic involved, which is difficult to express in Ansible/Jinja. This change replaces the use of set_fact with a custom Ansible action plugin. The plugin executes locally on the Ansible controller, and returns a dict of Ansible facts to set for each host. The plugin is executed once for each overcloud host, and returns all relevant facts. The plugin also performs verification. Extraction into a Python module allows for unit testing. This has been shown to have a significant improvement on execution time, particularly as the number of hosts reaches 100 or more. Story: 2007993 Task: 40641 Change-Id: I443da1ae05fcca2d7d8dff7db563eeda37e9f502 |
||
---|---|---|
.. | ||
cli | ||
cmd | ||
plugins | ||
tests | ||
__init__.py | ||
ansible.py | ||
exception.py | ||
kolla_ansible.py | ||
utils.py | ||
vault.py | ||
version.py |