从配置文件连接

为了使用 OpenStack 云,您首先需要使用您的凭据创建一个 Connection 与之连接。可以使用 3 种方式创建 Connection,即使用类本身(参见 连接)、文件或环境变量,如下所示。SDK 使用 os-client-config 来处理配置。

从文件创建连接

默认位置

要从文件创建连接,您需要一个 YAML 文件来包含配置。

clouds:
  devstack:
    auth:
      auth_url: http://xxx.xxx.xxx.xxx/identity
      password: password
      project_domain_id: default
      project_name: demo
      user_domain_id: default
      username: demo
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '3'
  devstack-admin:
    auth:
      auth_url: http://xxx.xxx.xxx.xxx/identity
      password: password
      project_domain_id: default
      project_name: admin
      user_domain_id: default
      username: admin
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '3'
  devstack-alt:
    auth:
      auth_url: http://xxx.xxx.xxx.xxx/identity
      password: password
      project_domain_id: default
      project_name: alt_demo
      user_domain_id: default
      username: alt_demo
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '3'
example:
  image_name: cirros-0.5.2-x86_64-disk
  flavor_name: m1.small

要使用名为 clouds.yaml 的配置文件,请在默认位置之一

  • 当前目录

  • ~/.config/openstack

  • /etc/openstack

调用 from_config()from_config 函数接受三个可选参数

  • cloud_name 允许您指定来自 clouds.yaml 文件的云。

  • cloud_config 允许您传入现有的 openstack.config.loader.OpenStackConfig` 对象。

  • options 允许您指定一个命名空间对象,其中包含要添加到云配置的选项。

class Opts:
    def __init__(self, cloud_name='devstack-admin', debug=False):
        self.cloud = cloud_name
        self.debug = debug
        # Use identity v3 API for examples.
        self.identity_api_version = '3'
def create_connection_from_config():
    return openstack.connect(cloud=TEST_CLOUD)
def create_connection_from_args():
    parser = argparse.ArgumentParser()
    return openstack.connect(options=parser)

注意

要启用日志记录,请在 options 对象中设置 debug=True

用户定义的位置

要在用户定义的位置使用配置文件,请将环境变量 OS_CLIENT_CONFIG_FILE 设置为文件的绝对路径。

export OS_CLIENT_CONFIG_FILE=/path/to/my/config/my-clouds.yaml

并调用 from_config(),并使用要使用的云配置的 cloud_name

下一步

现在您已经可以创建连接,请继续使用 用户指南,了解 OpenStack 服务的相关信息。