7.2.2 Подключение к облаку

OpenStack поддерживает использование clouds.yaml – файла конфигурации (Раздел 7.2.2.1), содержащего параметры настройки подключения к облаку. Работу с несколькими облаками можно упростить, сохранив информацию о конфигурации этих облаков в локальном файле.

OpenStackClient использует плагины аутентификации Keystone, поэтому необходимые параметры аутентификации не всегда известны, пока не выбран метод (Раздел 7.2.2.3). OpenStack попытается обнаружить пару общих типов аутентификации – на основе аргументов, переданных или найденных в файле конфигурации. Но, если они не являются полными, то будет невозможно узнать, какой тип аутентификации назначен.

7.2.2.1 Конфигурационные файлы

OpenStack для настройки конфигурации выполняет поиск файла с именем clouds.yaml, в следующем порядке:

  • просмотр текущей директории (./);
  • просмотр директории ~/.config/openstack (локальная конфигурация);
  • просмотр файла /etc/openstack (глобальная конфигурация).

Первый найденный файл используется для настройки (поиск прекращается).

Ключи соответствуют глобальным параметрам OpenStack, но без префикса \-\-os:

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

В приведенном выше примере параметр „auth_url“ для rackspace облака берется из файла clouds-public.yaml, содержащего следующий код:

public-clouds:
  rackspace:
    auth:
      auth_url: 'https://identity.api.rackspacecloud.com/v2.0/'

~/.config/openstack/clouds.yaml – файл может содержать ссылки на облака, определенные здесь как ярлыки.

Файл конфигурации, используемый -\-\os\-cloud (глобальной опцией) – ~/.config/openstack/clouds-public.yaml. Файл содержит информацию о поставщике общедоступного облака, такую как URL адреса аутентификации и определения служб. Содержимое этого файла должно быть общедоступным и общедоступным.

Файл ~/.openstack – «заполнитель» для будущего локального (государственного) каталога. Этот каталог предназначен для совместного использования несколькими приложениями, связанными с OpenStack; содержимое имеет пространство имен с идентификатором для приложения, которому оно принадлежит.

Примечание.

Общее содержимое (например, ~/.openstack/cache) не имеет префикса, и содержимое должно быть переносимым.

7.2.2.2 Переменные среды

Переменные среды (окружения) могут быть установлены для изменения поведения openstack. Большинство из них имеют соответствующие параметры командной строки, которые имеют приоритет (если установлены).

OS_CLOUD – имя конфигурации облака в clouds.yaml.

OS_AUTH_PLUGIN – плагин аутентификации, используемый при подключении к службе Identity, его версия должна соответствовать версии Identity API.

OS_AUTH_URL – URL аутентификации.

OS_URL – сервисный URL (при использовании сервисного токена).

OS_DOMAIN_NAME – область авторизации на уровне домена (имя или идентификатор).

OS_PROJECT_NAME – область проверки подлинности на уровне проекта (имя или идентификатор).

OS_PROJECT_DOMAIN_NAME – доменное имя или идентификатор, содержащий проект.

OS_USERNAME – аутентификация имени пользователя.

OS_TOKEN – аутентифицированный или сервисный токен.

OS_PASSWORD – пароль аутентификации.

OS_USER_DOMAIN_NAME – доменное имя или ID, содержащий пользователя.

OS_TRUST_ID – идентификатор траста для использования в качестве доверенного пользователя.

OS_DEFAULT_DOMAIN – идентификатор домена по умолчанию (по умолчанию: «по умолчанию»).

OS_REGION_NAME – название региона аутентификации.

OS_CACERT – файл пакета сертификатов CA.

OS_CERT – файл пакета сертификата клиента.

OS_KEY – файл ключа сертификата клиента.

OS_IDENTITY_API_VERSION – версия Identity API (по умолчанию: 2.0).

OS_XXXX_API_VERSION – дополнительные параметры версии API будут доступны в зависимости от установленных библиотек API.

OS_INTERFACE – тип интерфейса (допустимые значения: public, admin и internal).

Если вы переключаетесь на openstackclient из клиентов (указанных в проекте), таких как: nova, neutron и т.д., то используйте OS_INTERFACE вместо OS_ENDPOINT_TYPE.

7.2.2.3 Методы аутентификации

OpenStack использует схему аутентификации, аналогичную CLI проекта OpenStack, с информацией о полномочиях, предоставляемой либо в качестве переменных среды, либо в качестве параметров в командной строке.

Основным отличием является использование «проекта» в названии опций OS_PROJECT_NAME/OS_PROJECT_ID над старыми именами арендаторов.

export OS_AUTH_URL=<url-to-openstack-identity>
export OS_PROJECT_NAME=<project-name>
export OS_USERNAME=<user-name>
export OS_PASSWORD=<password>  # (optional)

Могут использоваться различные типы подключаемых модулей аутентификации, предоставляемых библиотекой keystoneclient. Доступны следующие плагины (по умолчанию):

  • token: плагин аутентификации с помощью токена;
  • password: плагин аутентификации с использованием имени пользователя и пароля;

Обратитесь к документации (описанию библиотеки keystoneclient) для получения более подробной информации об этих плагинах и их опциях, а также для получения полного списка доступных плагинов. Пожалуйста, имейте в виду, что некоторые плагины могут не поддерживать все функции openstack; например, плагин v3unscopedsaml может доставлять только токены с незаданной областью, некоторые команды могут быть недоступны при использовании этого метода аутентификации.

Примечание.

Для использования v3unscopedsaml метода необходимо установить пакет lxml.

Кроме того, для аутентификации можно использовать служебный токен Keystone, задав параметры –os-token и –os-url (или переменные среды). OS_TOKEN а также OS_URL соответственно). Этот метод имеет приоритет над плагинами аутентификации.

7.2.2.4 Пример настройки подключения

Показать подробную информацию для сервера appweb01:

openstack \\
--os-project-name ExampleCo \\
--os-username demo --os-password secret \\
--os-auth-url http://localhost:5000:/v2.0 \\
server show appweb01

Та же команда, если переменные среды auth установлены (OS_AUTH_URL, OS_PROJECT_NAME, OS_USERNAME, OS_PASSWORD):

openstack server show appweb01

Создание нового образа:

openstack image create \\
        --disk-format=qcow2 \\
        --container-format=bare \\
        --public \\
        --copy-from http://somewhere.net/foo.img \\
        foo