Hi, Yesterday we upgraded Zuul to a version that supports multiple Ansible versions. Previously, Zuul ran jobs under Ansible 2.5. That version will reach end of support in a few weeks, so the upgrade was necessary and timely. Zuul now supports selecting which version of Ansible (2.5, 2.6, 2.7) is used on a per-job basis. The default is the latest release of Ansible, currently 2.7, which means that when we made the upgrade, all jobs in the system immediately began running under 2.7. For most jobs, this has not caused any problems, and therefore, we will maintain the system default at 2.7. We have seen some errors, which generally fall into two categories: 1) Ansible syntax changes. Ansible 2.7 is more strict about invalid syntax than 2.5. If you encounter such an error, it may be easiest and best to simply update the roles or playbooks for the new syntax. If that is not practical, you can temporarily configure the job to run under an older version of Ansible by setting the "ansible-version" job attribute[1]. 2) Ansible module library incompatibility. Ansible modules run on the remote host they are targeting. Therefore if, for example, a job uses the "os_image" module to manipulate an OpenStack image store in a task that appears in a play which targets the "controller" node, then the os_image module will run in a Python interpreter on the "controller" node and it will import openstacksdk. Some jobs may implicitly rely on the fact that devstack installs openstacksdk in the global Python environment on the remote node in order for this to work. However, newer versions of Ansible require newer versions of openstacksdk than are specified by devstack on stable branches. This is a more complicated situation than that above. In this case, it may be simplest to set the job to use the newest working Ansible (whether that is 2.5 or 2.6) to resolve the immediate conflict. If the stable branch at issue will end support before the required version of Ansible, then you can stop there. However, if it must continue to work beyond then, it may be necessary to alter the job to avoid the use of the Ansible OpenStack modules and instead execute openstackclient commands using the shell or command modules. If you do specify an older version of Ansible for a job, be aware that once that version is no longer supported by Ansible, it will be removed from Zuul and the job will then need to be updated. If you have any further questions or see any other problems, please feel free to chat with us in #openstack-infra. -Jim [1] https://zuul-ci.org/docs/zuul/user/config.html#attr-job.ansible-version