Scalability improvements for disabled services
Currently, every service has a play in site.yml that is executed, and the role is skipped if the service is disabled. This can be slow, particularly with many hosts, since each play takes time to setup, and evaluate. This change creates various Ansible groups for hosts with services enabled at the beginning of the playbook. If a service is disabled, this new group will have no hosts, and the play for that service will be a noop. I have tested this on a laptop using an inventory with 12 hosts (each pointing to my laptop via SSH), and a config file that disables every service. Time taken to run 'kolla-ansible deploy': Before change: 2m30s After change: 0m14s During development I also tried an approach using an 'include_role' task for each service. This was not as good, taking 1m00s. The downsides to this patch are that there is a large number of tasks at the beginning of the playbook to perform the grouping, and every play for a disabled service now outputs this warning message: [WARNING]: Could not match supplied host pattern, ignoring: enable_foo_True This is because if the service is disabled, there are no hosts in the group. This seems like a reasonable tradeoff. Change-Id: Ie56c270b26926f1f53a9582d451f4bb2457fbb67
Loading
Please register or sign in to comment