1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
=============
Configuration
=============
OpenStackClient is primarily configured using command line options and environment
variables. Most of those settings can also be placed into a configuration file to
simplify managing multiple cloud configurations.
There is a relationship between the global options, environment variables and
keywords used in the configuration files that should make translation between
these three areas simple.
Most global options have a corresponding environment variable that may also be
used to set the value. If both are present, the command-line option takes priority.
The environment variable names are derived from the option name by dropping the
leading dashes (--), converting each embedded dash (-) to an underscore (_), and
converting to upper case.
The keyword names in the configurations files are derived from the global option
names by dropping the ``--os-`` prefix if present.
Global Options
--------------
The :doc:`openstack manpage <man/openstack>` lists all of the global
options recognized by OpenStackClient and the default authentication plugins.
Environment Variables
---------------------
The :doc:`openstack manpage <man/openstack>` also lists all of the
environment variables recognized by OpenStackClient and the default
authentication plugins.
Configuration Files
-------------------
clouds.yaml
~~~~~~~~~~~
:file:`clouds.yaml` is a configuration file that contains everything needed
to connect to one or more clouds. It may contain private information and
is generally considered private to a user.
OpenStackClient looks for a file called :file:`clouds.yaml` in the following
locations:
* current directory
* :file:`~/.config/openstack`
* :file:`/etc/openstack`
The first file found wins.
The keys match the :program:`openstack` global options but without the
``--os-`` prefix.
::
clouds:
devstack:
auth:
auth_url: http://192.168.122.10:35357/
project_name: demo
username: demo
password: 0penstack
region_name: RegionOne
ds-admin:
auth:
auth_url: http://192.168.122.10:35357/
project_name: admin
username: admin
password: 0penstack
region_name: RegionOne
infra:
cloud: rackspace
auth:
project_id: 275610
username: openstack
password: xyzpdq!lazydog
region_name: DFW,ORD,IAD
interface: internal
In the above example, the ``auth_url`` for the ``rackspace`` cloud is taken
from :file:`clouds-public.yaml` (see below).
The first two entries are for two of the default users of the same DevStack
cloud.
The third entry is for a Rackspace Cloud Servers account. It is equivalent
to the following options if the ``rackspace`` entry in :file:`clouds-public.yaml`
(below) is present:
::
--os-auth-url https://identity.api.rackspacecloud.com/v2.0/
--os-project-id 275610
--os-username openstack
--os-password xyzpdq!lazydog
--os-region-name DFW
--os-interface internal
and can be selected on the command line::
openstack --os-cloud infra server list
Note that multiple regions are listed in the ``rackspace`` entry. An otherwise
identical configuration is created for each region. If ``-os-region-name`` is not
specified on the command line, the first region in the list is used by default.
The selection of ``interface`` (as seen above in the ``rackspace`` entry)
is optional. For this configuration to work, every service for this cloud
instance must already be configured to support this type of interface.
clouds-public.yaml
~~~~~~~~~~~~~~~~~~
:file:`clouds-public.yaml` is a configuration file that is intended to contain
public information about clouds that are common across a large number of users.
The idea is that :file:`clouds-public.yaml` could easily be shared among users
to simplify public cloud configuration.
Similar to :file:`clouds.yaml`, OpenStackClient looks for
:file:`clouds-public.yaml` in the following locations:
* current directory
* :file:`~/.config/openstack`
* :file:`/etc/openstack`
The first file found wins.
The keys here are referenced in :file:`clouds.yaml` ``cloud`` keys. Anything
that appears in :file:`clouds.yaml`
::
public-clouds:
rackspace:
auth:
auth_url: 'https://identity.api.rackspacecloud.com/v2.0/'
Debugging
~~~~~~~~~
You may find the :doc:`config show <command-objects/config>`
helpful to debug configuration issues. It will display your current
configuration.
Logging Settings
----------------
By setting `log_level` or `log_file` in the configuration
:file:`clouds.yaml`, a user may enable additional logging::
clouds:
devstack:
auth:
auth_url: http://192.168.122.10:35357/
project_name: demo
username: demo
password: 0penstack
region_name: RegionOne
operation_log:
logging: TRUE
file: /tmp/openstackclient_demo.log
level: info
ds-admin:
auth:
auth_url: http://192.168.122.10:35357/
project_name: admin
username: admin
password: 0penstack
region_name: RegionOne
log_file: /tmp/openstackclient_admin.log
log_level: debug
:dfn:`log_file`: ``</path/file-name>``
Full path to logging file.
:dfn:`log_level`: ``error`` | ``info`` | ``debug``
If log level is not set, ``warning`` will be used.
If log level is ``info``, the following information is recorded:
* cloud name
* user name
* project name
* CLI start time (logging start time)
* CLI end time
* CLI arguments
* CLI return value
* and any ``info`` messages.
If log level is ``debug``, the following information is recorded:
* cloud name
* user name
* project name
* CLI start time (logging start time)
* CLI end time
* CLI arguments
* CLI return value
* API request header/body
* API response header/body
* and any ``debug`` messages.
When a command is executed, these logs are saved every time. Recording the user
operations can help to identify resource changes and provide useful information
for troubleshooting.
If saving the output of a single command use the `--log-file` option instead.
* `--log-file <LOG_FILE>`
The logging level for `--log-file` can be set by using following options.
* `-v, --verbose`
* `-q, --quiet`
* `--debug`
|