OpenStack CLI
OpenStack CLI — это консольный клиент для работы с OpenStack API, который устанавливается на локальный компьютер. Через OpenStack CLI в Selectel можно управлять облачной инфраструктурой: серверами, группами размещения, сетевыми дисками, сетями, образами, балансировщиками нагрузки.
Актуальные версии компонентов, которые поддерживаются в Selectel, можно посмотреть в таблице Версии компонентов OpenStack.
Настроить OpenStack CLI можно:
Версии компонентов OpenStack
Настроить OpenStack CLI средствами ОС
1. Установить OpenStack CLI
Ubuntu/Debian
CentOS
macOS
Windows
-
Откройте CLI.
-
Установите Python 3 и virtualenv:
sudo apt update
sudo apt install python3 virtualenv -
Установите pip3:
sudo apt install python3-pip
-
Создайте виртуальную среду для работы с OpenStack:
virtualenv env
-
Активируйте виртуальную среду:
source env/bin/activate
-
Установите OpenStack CLI в виртуальную среду:
pip3 install python-openstackclient
-
Проверьте, что OpenStack CLI установлен:
openstack --version
В ответе появится номер версии.
-
Опционально: установите компонент Octavia для работы с облачными балансировщиками нагрузки:
pip3 install python-octaviaclient
-
Опционально: установите компонент Glance для работы с образами:
pip3 install python-glanceclient
-
Откройте CLI.
-
Установите Python 3, virtualenv и pip3:
sudo dnf update -y
sudo dnf install python3 -y
sudo dnf install virtualenv -y
sudo dnf install python3-pip -y -
Установите OpenStack CLI:
pip3 install python-openstackclient
-
Проверьте, что OpenStack CLI установлен:
openstack --version
В ответе появится номер версии.
-
Опционально: установите компонент Octavia для работы с облачными балансировщиками нагрузки:
pip3 install python-octaviaclient
-
Опционально: установите компонент Glance для работы с образами:
pip3 install python-glanceclient
-
Откройте CLI.
-
Установите Python 3 и pip3:
brew install python3
-
Установите virtualenv:
pip3 install virtualenv
-
Установите OpenStack CLI:
brew install openstackclient
-
Проверьте, что OpenStack CLI установлен:
openstack --version
В ответе появится номер версии.
-
Опционально: установите компонент Octavia для работы с облачными балансировщиками нагрузки:
pip3 install python-octaviaclient
-
Опционально: установите компонент Glance для работы с образами:
pip3 install python-glanceclient
-
Загрузите и установите Python, например, версию Python 3.12.0. При запуске установки отметьте чекбокс Add python.exe to PATH.
-
Загрузите и установите Microsoft C++ Build Tools. При запуске установки в разделе Workloads в блоке Desktop & Mobile отметьте чекбокс Desktop development with C++.
-
Откройте CLI.
-
Установите OpenStack CLI:
pip3 install python-openstackclient
-
Проверьте, что OpenStack CLI установлен:
openstack --version
В ответе появится номер версии.
-
Опционально: установите компонент Octavia для работы с облачными балансировщиками нагрузки:
pip3 install python-octaviaclient
-
Опционально: установите компонент Glance для работы с образами:
pip3 install python-glanceclient
2. Добавить сервисного пользователя
Для управления ресурсами через OpenStack API нужно создать сервисного пользователя с ролью Администратор проекта или Наблюдатель проекта и добавить его в проект. Если после авторизации вам нужно будет управлять ресурсами под другим сервисным пол ьзователем, вы можете изменить данные для авторизации.
-
В панели управления нажмите Аккаунт.
-
Перейдите в раздел Сервисные пользователи.
-
Нажмите Добавить пользователя.
-
Выберите тип Сервисный пользователь.
-
Введите имя пользователя. Оно будет использоваться при авторизации.
-
Введите пароль для пользователя или сгенерируйте его.
-
Сохраните пароль — после создания пользователя посмотреть пароль нельзя, только изменить.
-
Выберите роль пользователя:
- Администратор проекта — может создавать, редактировать и удалять ресурсы проекта;
- Наблюдатель проекта — может просматривать ресурсы проекта.
-
Отметьте проекты, в которые нужно добавить пользователя.
-
Нажмите Добавить пользователя.
3. Скачать RC-файл
Для настройки авторизации нужно скачать RC-файл сервисного пользователя.
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел Сервисные пользователи.
-
Откройте страницу сервисного пользователя, которого вы добавили для работы с OpenStack CLI → вкладка Доступ.
-
В блоке RC-файлы:
4.1. Выберите проект.
4.2. Выберите регион.
4.3. Выберите пул.
4.4. Нажмите Скачать.
4. Настроить авторизацию
Авторизацию в OpenStack API можно настроить только для одного аккаунта, сервисного пользователя, проекта и пула. Если после авторизации вам нужно будет управлять ресурсами другого аккаунта, в другом проекте или пуле или под другим сервисным пользователем, вы можете изменить данные для авторизации.
Linux/macOS
Windows
-
Откройте CLI.
-
Перейдите в директорию с RC-файлом, который вы получили при скачивании RC-файла для авторизации на шаге 4.4:
cd <directory_name>
Укажите
<directory_name>
— имя директории с RC-файлом. -
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
. -
Введите пароль OpenStack — пароль сервисного пользователя, для которого создан RC-файл.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в RC-файле, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
-
Откройте CLI.
-
Добавьте переменные окружения:
set OS_AUTH_URL=<url>
set OS_IDENTITY_API_VERSION=3
set OS_VOLUME_API_VERSION=3
set CLIFF_FIT_WIDTH=1
set OS_PROJECT_DOMAIN_NAME=<account_id>
set OS_PROJECT_ID=<project_id>
set OS_TENANT_ID=<project_id>
set OS_TENANT_NAME=<project_name>
set OS_REGION_NAME=<pool>
set OS_USER_DOMAIN_NAME=<account_id>
set OS_USERNAME=<user_name>
set OS_PASSWORD=<user_password>Укажите:
<url>
— адрес (URL) для авторизации в API. Адрес зависит от региона и пула, его можно посмотреть в списке URL;<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<project_id>
— ID проекта. Можно скопировать в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → в строке проекта нажмите ;<project_name>
— имя проекта. Можно посмотреть в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → скопируйте имя проекта;<pool>
— пул, напримерru-2
. Управлять инфраструктурой проекта можно будет только в этом пуле;<user_name>
— имя сервисного пользователя, которого вы добавили для работы в OpenStack CLI на шаге 10;<user_password>
— пароль сервисного пользователя. После создания пользователя посмотреть пароль нельзя — можно только сгенерировать новый. Подробнее в подразделе Изменить пароль сервисного пользователя инструкции Изменить данные и роль пользователя.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
Настроить OpenStack CLI в Docker-контейнере
1. Установить Docker
На локальном компьютере установите Docker. Используйте инструкцию Установить Docker в документации Docker.
2. Добавить сервисного пользователя
Для управления ресурсами через OpenStack API нужно создать сервисного пользователя с ролью Администратор проекта или Наблюдатель проекта и добавить его в проект. Если после авторизации вам нужно будет управлять ресурсами под другим сервисным пользователем, вы можете изменить данные для авторизации.
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел Сервисные пользователи
-
Нажмите Добавить сервисного пользователя.
-
Введите имя пользователя. Оно будет использоваться при авторизации.
-
Введите пароль для пользователя или сгенерируйте его.
-
Сохраните пароль — после создания пользователя посмотреть пароль нельзя, только изменить.
-
Выберите роль пользователя:
- Администратор проекта — может создавать, редактировать и удалять ресурсы проекта;
- Наблюдатель проекта — может просматривать ресурсы проекта.
-
Отметьте проекты, в которые нужно добавить пользователя.
-
Нажмите Добавить пользователя.
3. Скачать RC-файл для авторизации
Авторизацию в OpenStack API можно настроить только для одного аккаунта, сервисного пользователя, проекта и пула. Если после авторизации вам нужно будет управлять ресурсами другого аккаунта, в другом проекте или пуле или под другим сервисным пользователем, вы сможете изменить данные для авторизации.
-
В панели управления нажмите Аккаунт.
-
Перейдите в раздел Сервисные пол ьзователи.
-
Откройте страницу сервисного пользователя, которого вы добавили для работы с OpenStack CLI → вкладка Доступ.
-
В блоке RC-файлы:
4.1. Выберите проект.
4.2. Выберите регион.
4.3. Выберите пул.
4.4. Нажмите Скачать.
4. Установить OpenStack CLI в Docker-контейнере
-
Откройте CLI.
-
Создайте директорию для работы с Docker:
mkdir <docker_directory>
Укажите
<docker_directory>
— имя директории, в которую будет добавлен RC-файл и создан Dockerfile. -
Переместите RC-файл, который вы получили при скачивании RC-файла для авторизации на шаге 4.4, в директорию:
mv <rcfile_name.sh> <docker_directory>
Укажите:
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
;<docker_directory>
— имя директории, в которую будет добавлен RC-файл и создан Dockerfile.
-
Создайте в этой директории пустой Dockerfile:
nano Dockerfile
-
Добавьте в Dockerfile команды для установки OpenStack CLI:
FROM alpine:3.17
RUN apk add --update --no-cache python3 python3-dev libffi libffi-dev \
git openssl openssl-dev cargo build-base iputils curl linux-headers \
py3-pip py3-cffi py3-tz py3-pbr py3-setuptools && \
pip3 install -UI git+https://github.com/openstack/python-openstackclient.git@stable/2024.2 \
git+https://github.com/openstack/python-glanceclient.git@stable/2024.2 \
git+https://github.com/openstack/python-octaviaclient.git@stable/2024.2 \
&& apk del build-base linux-headers python3-dev libffi-dev openssl-dev git cargo iputils curl && rm -rf /var/cache
CMD ["sh"] -
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Соберите Docker-контейнер:
docker build -t osc:dalmatian .
-
Запустите Docker-контейнер:
docker run -ti --rm -v $(pwd):/workspace osc:dalmatian
-
Перейдите в директорию
workspace
:cd /workspace
-
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4 и переместили в директорию с Dockerfile. По умолчаниюrc.sh
-
Введите пароль OpenStack — пароль сервисного пользователя, для которого вы скачали RC-файл на шаге 4.4.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в RC-файле, созданы облачные серверы, в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
Запустить OpenStack CLI
Процесс запуска OpenStack CLI зависит от того, как вы настроили авторизацию OpenStack API:
- если вы настраивали авторизацию средствами операционной системы — запустите OpenStack CLI в ОС;
- если вы настраивали авторизацию в Docker-контейнере — запустите OpenStack CLI в Docker-контейнере.
Запустить OpenStack CLI в ОС
Linux/macOS
Windows
-
Откройте CLI.
-
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
-
Введите пароль OpenStack — пароль сервисного пользователя, для которого вы скачали RC-файл на шаге 4.4.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
-
Откройте CLI.
-
Добавьте переменные окружения:
set OS_AUTH_URL=<url>
set OS_IDENTITY_API_VERSION=3
set OS_VOLUME_API_VERSION=3
set CLIFF_FIT_WIDTH=1
set OS_PROJECT_DOMAIN_NAME=<account_id>
set OS_PROJECT_ID=<project_id>
set OS_TENANT_ID=<project_id>
set OS_TENANT_NAME=<project_name>
set OS_REGION_NAME=<pool>
set OS_USER_DOMAIN_NAME=<account_id>
set OS_USERNAME=<user_name>
set OS_PASSWORD=<user_password>Укажите:
<url>
— адрес (URL) для авторизации в API. Адрес зависит от региона и пула, его можно посмотреть в списке URL;<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<project_id>
— ID проекта. Можно скопировать в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → в строке проекта нажмите ;<project_name>
— имя проекта. Можно посмотреть в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → скопируйте имя проекта;<pool>
— пул, напримерru-2
. Управлять инфраструктурой проекта можно будет только в этом пуле;<user_name>
— имя сервисного пользователя, которого вы добавили для работы в OpenStack CLI на шаге 10;<user_password>
— пароль сервисного пользователя. После создания пользователя посмотреть пароль нельзя — можно только сгенерировать новый. Подробнее в подразделе Изменить пароль сервисного пользователя инструкции Изменить данные и роль пользователя.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
Запустить OpenStack CLI в Docker-контейнере
-
Откройте CLI.
-
Запустите Docker-контейнер:
docker run -ti --rm -v $(pwd):/workspace osc:dalmatian
-
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
. -
Введите пароль OpenStack — пароль сервисного пользователя, для которого вы скачали RC-файл на шаге 4.4.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
После работы с OpenStack CLI, выйдите из Docker-контейнера:
exit
Изменить данные для авторизации
Если вам нужно управлять ресурсами другого аккаунта, проекта, пула или под другим сервисным пользователем, измените данные для авторизации.
Процесс изменения данных зависит от того, как вы настроили авторизацию OpenStack API:
- если вы настраивали авторизацию средствами операционной системы — измените данные авторизации в ОС;
- если вы настраивали авторизацию в Docker-контейнере — измените данные авторизации в Docker-контейнере.
Изменить данные авторизации в ОС
Linux/macOS
Windows
-
Откройте CLI.
-
Откройте RC-файл в текстовом редакторе
nano
:nano /<directory_name>/<rcfile_name.sh>
Укажите:
<directory_name>
— имя директории с RC-файлом и Dockerfile;<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
-
Измените данные в файле:
export OS_PROJECT_DOMAIN_NAME='<account_id>'
export OS_PROJECT_ID='<project_id>'
export OS_TENANT_ID='<project_id>'
export OS_REGION_NAME='<pool>'
export OS_USER_DOMAIN_NAME='<account_id>'
export OS_USERNAME='<user_name>'Укажите:
<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<project_id>
— ID проекта. Можно скопировать в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → в строке нужного проекта нажмите ;<pool>
— пул, напримерru-2
;<user_name>
— имя сервисного пользователя, которого вы добавили для управления ресурсами через OpenStack CLI. Можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Сервисные пользователи.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
-
Введите пароль OpenStack — пароль сервисного пользователя, для которого вы скачали RC-файл на шаге 4.4.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их с писок. Если серверы пока не созданы, в выводе команды будет пустая строка.
-
Откройте CLI.
-
Добавьте переменные окружения:
set OS_AUTH_URL=<url>
set OS_IDENTITY_API_VERSION=3
set OS_VOLUME_API_VERSION=3
set CLIFF_FIT_WIDTH=1
set OS_PROJECT_DOMAIN_NAME=<account_id>
set OS_PROJECT_ID=<project_id>
set OS_TENANT_ID=<project_id>
set OS_TENANT_NAME=<project_name>
set OS_REGION_NAME=<pool>
set OS_USER_DOMAIN_NAME=<account_id>
set OS_USERNAME=<user_name>
set OS_PASSWORD=<user_password>Укажите:
<url>
— адрес (URL) для авторизации в API. Адрес зависит от региона и пула, его можно посмотреть в списке URL;<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<project_id>
— ID проекта. Можно скопировать в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → в строке ну жного проекта нажмите ;<project_name>
— имя проекта. Можно посмотреть в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта);<pool>
— пул, напримерru-2
;<user_name>
— имя сервисного пользователя, которого вы добавили для управления ресурсами через OpenStack CLI. Можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Сервисные пользователи;<user_password>
— пароль сервисного пользователя. После с оздания пользователя посмотреть пароль нельзя — можно только сгенерировать новый. Подробнее в подразделе Изменить пароль сервисного пользователя инструкции Изменить данные и роль пользователя.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.
Изменить данные авторизации в Docker-контейнере
-
Откройте CLI.
-
Откройте RC-файл в текстовом редакторе
nano
:nano /<docker_directory>/<rcfile_name.sh>
Укажите:
<docker_directory>
— имя директории с добавленными RC-файлом и Dockerfile;<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
-
Измените данные в файле:
export OS_PROJECT_DOMAIN_NAME='<account_id>'
export OS_PROJECT_ID='<project_id>'
export OS_TENANT_ID='<project_id>'
export OS_REGION_NAME='<pool>'
export OS_USER_DOMAIN_NAME='<account_id>'
export OS_USERNAME='<user_name>'Укажите:
<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<project_id>
— ID проекта. Можно скопировать в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов (название текущего проекта) → в строке нужного проекта нажмите ;<pool>
— пул, напримерru-2
;<user_name>
— имя сервисного пользователя, которого вы добавили для управления ресурсами через OpenStack CLI. Можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Сервисные пользователи.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Запустите Docker-контейнер:
docker run -ti --rm -v $(pwd):/workspace osc:dalmatian
-
Примените переменные окружения из RC-файла:
source <rcfile_name.sh>
Укажите
<rcfile_name.sh>
— имя RC-файла, который вы получили при скачивании RC-файла для авторизации на шаге 4.4. По умолчаниюrc.sh
. -
Введите пароль OpenStack — пароль сервисного пользователя, для которого создан RC-файл.
-
Проверьте работу OpenStack CLI, например, откройте список облачных серверов:
openstack server list
Если в пуле и проекте, которые указаны в переменных, созданы облачные серверы, то в выводе команды появится их список. Если серверы пока не созданы, в выводе команды будет пустая строка.