- Ansible Tower >=3.0.x
Playbooks using openstack modules ran from Ansible Tower using Tower's built in Openstack credentials fail with
unable to locate cloud
Change the "cloud" attribute to value "devstack" in your playbook.
Ansible Tower dynamically generates a temporary openstack.yml file and points to it with
$OS_CLIENT_CONFIG_FILE in the job runtime env. The "cloud" name is always set to devstack and cannot be customized at this time.
Playbook task example:
- name: Creating project os_project: cloud: "some_cloud" state: present name: "some_name" verify: false wait: yes
stderr from Tower:
Traceback (most recent call last): File \"/tmp/ansible_cIBvWR/ansible_module_os_project.py\", line 237, in <module> main() File \"/tmp/ansible_cIBvWR/ansible_module_os_project.py\", line 195, in main cloud = shade.openstack_cloud(**module.params) File \"/home/stack/.local.bak/lib/python2.7/site-packages/shade/__init__.py\", line 109, in openstack_cloud cloud_config = config.get_one_cloud(**kwargs) File \"/home/stack/.local.bak/lib/python2.7/site-packages/os_client_config/config.py\", line 1041, in get_one_cloud config = self._get_base_cloud_config(cloud) File \"/home/stack/.local.bak/lib/python2.7/site-packages/os_client_config/config.py\", line 460, in _get_base_cloud_config name=name)) os_client_config.exceptions.OpenStackConfigException: Cloud some_cloud was not found.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.