If you’re using the new OpenStack modules in 2.0 and you upgrade os-client-config to the latest AND you don’t use clouds.yaml AND you decide to pass auth_url as auth-url - you will get an error:
keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth-url
Now, you’ll be confused because you DID pass auth-url.
There are two bugs, that mutually surfaced each other - both are being worked and should be fixed upstream very soon. However, in the mean time, the workaround is to either use a named cloud in clouds.yaml for your cloud config, or to use auth_url intead of auth-url.
Sorry for any inconvenience.
Monty
I have something related to that issue. Although I do use the clouds.yaml file, no OS_ vars exported, and the following command throws the same error (but strace shows that it can open the clouds.yaml):
$ strace -f -tt -T -e trace=open ~/.virtualenvs/ocp/bin/ansible-playbook <...>
[pid 952] 09:26:08.484876 open("/home/bogdando/.config/openstack/clouds.yaml", O_RDONLY) = 12 <0.000011>
<...>
[pid 952] 09:26:08.835842 open("/tmp/ansible__OeDxV/ansible_module_os_stack.py", O_RDONLY) = 12 <0.000017>
[pid 952] 09:26:08.836055 open("/tmp/ansible__OeDxV/ansible_module_os_stack.py", O_RDONLY) = 12 <0.000008>
[pid 952] 09:26:08.836208 open("/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/shade/__init__.py", O_RDONLY) = 12 <0.000026>
[pid 952] 09:26:08.836359 open("/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/os_client_config/config.py", O_RDONLY) = 12 <0.000020>
[pid 952] 09:26:08.836797 open("/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/keystoneauth1/loading/base.py", O_RDONLY) = 12 <0.000020>
[pid 952] 09:26:08.860615 +++ exited with 1 +++
<...>
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Traceback (most recent call last):\n File \"/tmp/ansible__OeDxV/ansible_module_os_stack.py\", line 273, in <module>\n main()\n File \"/tmp/ansible__OeDxV/ansible_module_os_stack.py\", line 243, in main\n cloud = shade.openstack_cloud(**module.params)\n File \"/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/shade/__init__.py\", line 102, in openstack_cloud\n cloud_config = config.get_one_cloud(**kwargs)\n File \"/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/os_client_config/config.py\", line 1071, in get_one_cloud\n auth_plugin = loader.load_from_options(**config['auth'])\n File \"/home/bogdando/.virtualenvs/ocp/local/lib/python2.7/site-packages/keystoneauth1/loading/base.py\", line 162, in load_from_options\n raise exceptions.MissingRequiredOptions(missing_required)\nkeystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
I have:
ansible==2.3.1.0
os-client-config==1.27.0
shade==1.21.0
and the playbook called looks like this:
os_stack:
name: "{{ stack_name }}"
state: present
template: "{{ stack_template_path }}"
wait: yes
It works for me if I export the creds file with OS_ vars, just wanted to make it working with my clouds.yaml as well.