Implement OpenStack client clouds.yml configuration file

OpenStack client supports defining one or more sets of credentials
inside a clouds.yml configuration file. A default configuration has
been created named `default` that contains the same admin credentials
from the `openrc` file currently being templated.

The default configuration can be specified using the following:

openstack --os-cloud default <command>

Change-Id: Icc0c06a9b9a9e2e75b58fe90b4da9dd46b63e7f4
This commit is contained in:
Byron McCollum 2015-11-24 07:27:26 -06:00
parent ea5d604af7
commit 0cd1a41a6b
3 changed files with 49 additions and 1 deletions

View File

@ -17,16 +17,26 @@
openrc_cinder_endpoint_type: internalURL
openrc_nova_endpoint_type: internalURL
openrc_os_endpoint_type: internalURL
openrc_clouds_yml_interface: internal
## Default credentials
openrc_os_username: admin
openrc_os_tenant_name: admin
openrc_os_auth_url: "http://127.0.0.1:5000"
openrc_clouds_yml_region_name: RegionOne
## Deliberately allow access to SSL endpoints with bad certificates
openrc_insecure: "{{ (keystone_service_adminuri_insecure | bool or keystone_service_internaluri_insecure | bool) | default(false) }}"
## Create file
## Create openrc file
openrc_file_dest: "{{ ansible_env.HOME }}/openrc"
openrc_file_owner: "{{ ansible_user_id }}"
openrc_file_group: "{{ ansible_user_id }}"
## Create clouds.yml file
openrc_openstack_client_config_dir_dest: "{{ ansible_env.HOME }}/.config/openstack"
openrc_openstack_client_config_dir_owner: "{{ ansible_user_id }}"
openrc_openstack_client_config_dir_group: "{{ ansible_user_id }}"
openrc_clouds_yml_file_dest: "{{ openrc_openstack_client_config_dir_dest }}/clouds.yml"
openrc_clouds_yml_file_owner: "{{ ansible_user_id }}"
openrc_clouds_yml_file_group: "{{ ansible_user_id }}"

View File

@ -22,3 +22,23 @@
mode: "0600"
tags:
- openstack-openrc-file
- name: Create OpenStack client configuration directory
file:
dest: "{{ openrc_openstack_client_config_dir_dest }}"
owner: "{{ openrc_openstack_client_config_dir_owner }}"
group: "{{ openrc_openstack_client_config_dir_group }}"
mode: "0600"
state: directory
tags:
- openstack-openrc-file
- name: Create clouds.yml file
template:
src: clouds.yml
dest: "{{ openrc_clouds_yml_file_dest }}"
owner: "{{ openrc_clouds_yml_file_owner }}"
group: "{{ openrc_clouds_yml_file_group }}"
mode: "0600"
tags:
- openstack-openrc-file

18
templates/clouds.yml Normal file
View File

@ -0,0 +1,18 @@
# {{ ansible_managed }}
clouds:
default:
auth:
auth_url: {{ openrc_os_auth_url }}
project_name: {{ openrc_os_tenant_name }}
tenant_name: {{ openrc_os_tenant_name }}
username: {{ openrc_os_username }}
password: {{ openrc_os_password }}
user_domain_name: {{ openrc_os_domain_name }}
project_domain_name: {{ openrc_os_domain_name }}
region_name: {{ openrc_clouds_yml_region_name }}
interface: {{ openrc_clouds_yml_interface }}
{% if openrc_os_auth_url.endswith('v3') %}
identity_api_version: "3"
{% else %}
identity_api_version: "2.0"
{% endif %}