Чтобы OpenStackClient мог управлять облачной инфраструктурой, необходимо получить данные для аутентификации и указать их в переменных окружения. Ниже мы покажем, как это сделать для Windows, Linux и macOS, включая сохранение скрипта аутентификации локально.
Внимание: Хранение пароля в скриптах или истории команд может привести к его компрометации. Для безопасности используйте интерактивный ввод пароля (см. примеры ниже).
Предварительные требования
- Вы должны иметь учётную запись в личном кабинете Сервер Молл Cloud. О том, как зарегистрировать учётную запись — смотрите инструкцию: “Регистрация аккаунта”.
- Вы должны заказать услугу “Облачная инфраструктура” и получить сообщение о её готовности к работе на электронную почту, привязанную к вашему аккаунту, или в личном кабинете Сервер Молл Cloud.
- В системе должны быть установлены Python и OpenStackClient в соответствии с инструкцией: “Установка OpenStackClient”.
I. Получение пароля из панели управления услугой
Пароль для аутентификации хранится в облачной консоли Сервер Молл Cloud. Чтобы его получить, выполните следующее:
- Войдите в панель управления Сервер Молл Cloud. О том, как это сделать, смотрите в инструкциях:
- Если двухфакторная аутентификация (2FA) не используется, см. “Вход в панель управления”.
- Если 2FA подключена, см. “Вход в панель управления с использованием 2FA”.
- Выберите пункт главного меню “Услуги”.
Вы перейдёте на страницу “Продукты/услуги”. - Выберите облачную инфраструктуру, в которой требуется аутентификация.

Вы перейдёте на панель управления услугой “Облачная инфраструктура”. - В разделе “Management Panel” нажмите на кнопку “Click to copy” (с изображением двух листов бумаги), которая находится в строке “Password”.

Пароль для аутентификации будет скопирован в буфер обмена, о чём скажет сообщение “The data has been successfully copied to the clipboard”.
II. Получение OpenRC-файла
OpenRC-файл вы можете скачать из облачной консоли, выполнив следующие шаги:
- Войдите в облачную консоль. Как это сделать, смотрите в инструкции: “Вход в панель управления облачной инфраструктурой”.
- Нажмите на иконку пользователя, которая находится в правом верхнем углу панели управления.

Откроется выпадающее меню действий пользователя. - Выберите пункт меню “Получить файл OpenRC”.

- Нажмите на поле “Тип”, чтобы раскрыть список.
- Выберите “Тип пароля”.
- Нажмите “OK”.

- Откроется диалоговое окно для сохранения OpenRC-файла.
- Сохраните OpenRC-файл локально.
III. Аутентификация из Windows
Чтобы пройти аутентификацию в облачной инфраструктуре, вы должны установить переменные окружения Windows.
Здесь мы рассмотрим, как создать скрипт для установки параметров окружения через PowerShell, CMD, Git Bash, а также покажем, как быстро очистить переменные в текущем сеансе, если вам, например, нужно переключиться на другую облачную инфраструктуру.
Аутентификация с помощью PowerShell
Мы создадим скрипт, в котором укажем все необходимые данные для аутентификации, в том числе пароль либо используем механизм запроса пароля у пользователя.
Создание скрипта
- Создайте скрипт
Создайте файл с расширением *.ps1, где будут храниться переменные окружения. Например: os_auth.ps1. - Задайте структуру скрипта
Скопируйте в созданный файл следующее содержимое:$env:OS_AUTH_URL="https://cli.pbcloud.services:5000/v3/" $env:OS_USERNAME="<OS_USERNAME>" $env:OS_PROJECT_ID="<OS_PROJECT_ID>" $env:OS_PROJECT_DOMAIN_NAME="<OS_PROJECT_DOMAIN_NAME>" $env:OS_USER_DOMAIN_NAME="<OS_USER_DOMAIN_NAME>" $env:OS_REGION_NAME="RegionOne" $env:OS_INTERFACE="public" $env:OS_IDENTITY_API_VERSION=3
- Заполните скрипт значениями из OpenRC-файла
Замените значения-заполнители в угловых скобках <…> фактическими значениями для вашего проекта из полученного ранее, в разделе II, OpenRC-файла, исключая сами скобки, для следующих параметров: <OS_USERNAME>, <OS_PROJECT_ID>, <OS_PROJECT_DOMAIN_NAME>, <OS_USER_DOMAIN_NAME>.
Результат заполнения значениями может выглядеть, например, так:$env:OS_AUTH_URL="https://cli.pbcloud.services:5000/v3/" $env:OS_USERNAME="wuofcwvh" $env:OS_PROJECT_ID="f805701a98324d3398b5365707e2fd4c" $env:OS_PROJECT_DOMAIN_NAME="my-domain-31-715-725-1746533363" $env:OS_USER_DOMAIN_NAME="my-domain-31-715-725-1746533363" $env:OS_REGION_NAME="RegionOne" $env:OS_INTERFACE="public" $env:OS_IDENTITY_API_VERSION=3
- Выберите способ получения пароля
Если вы хотите сохранить пароль от облачной инфраструктуры в скрипте, то добавьте в него строку:$env:OS_PASSWORD = "<OS_PASSWORD>"
где замените <OS_PASSWORD> на пароль от облачной инфраструктуры, полученный вами в разделе I. “Получение пароля из панели управления услугой”.
Однако вы должны быть уверены, что скрипт не будет доступен для посторонних, так как в нём будут содержаться данные, достаточные для подключения к вашей облачной инфраструктуре и управления ею.
Более безопасным видится метод, когда пароль будет запрашиваться каждый раз при настройке переменных окружения. Для реализации этого метода, вместо прямого указания пароля, добавьте в скрипт следующий код:
$pass = Read-Host -AsSecureString "OpenStack password"
$BSTR = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass)
try {
$plain = [Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
} finally {
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($BSTR)
}
$env:OS_PASSWORD = $plain
Этот код позволит запросить у пользователя пароль для аутентификации в облачной инфраструктуре и сохранит его в переменных окружения для текущего сеанса, локально пароль в этом случае не сохраняется.
Использование скрипта
- Разрешите выполнение локальных скриптов
Если это необходимо, то разрешите выполнение скриптов, созданных локально, выполнив команду:Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
На запрос: “Вы хотите изменить политику выполнения?” нажмите клавишу Y для разрешения выполнения локальных скриптов, а затем нажмите клавишу Enter.
Локальные скрипты теперь могут выполняться без подписи, а загруженные из интернета должны быть подписаны доверенным издателем (иначе PowerShell заблокирует их выполнение). Данная команда действует в пределах сеанса, если окно PowerShell будет закрыто, то выданное разрешение будет отменено.
- Выполните скрипт
Запустите в PowerShell скрипт аутентификации. Например, для скрипта os_auth.ps1, находящегося в текущем каталоге, команда запуска будет выглядеть следующим образом:
.\os_auth.ps1
Скрипт установит переменные окружения для аутентификации в облачной инфраструктуре через OpenStackClient.
Очистка переменных окружения в текущем сеансе
Если вам нужно очистить переменные окружения в текущем сеансе, например, для безопасности или переключения на другую облачную инфраструктуру, выполните в PowerShell следующие команды:
# Удаление всех переменных окружения, начинающихся с "OS_"
Get-ChildItem Env:OS_* | Remove-Item
# Очистка переменных, использовавшихся для хранения пароля (если применялся SecureString)
if ($pass -ne $null) { $pass = $null }
if ($plain -ne $null) { $plain = $null }Это удалит все переменные окружения с префиксом OS_ и обнулит временные переменные, использовавшиеся для хранения пароля.
Аутентификация через CMD
Мы создадим скрипт для командной строки Windows (CMD.EXE), в котором укажем все необходимые данные для аутентификации, в том числе пароль либо используем механизм запроса пароля у пользователя.
Создание скрипта
- Создайте скрипт
Создайте файл с расширением *.cmd, где будут храниться переменные окружения. Например: os_auth.cmd. - Задайте структуру скрипта
Скопируйте в созданный файл следующее содержимое:@echo off set "OS_AUTH_URL=https://cli.pbcloud.services:5000/v3/" set "OS_USERNAME=<OS_USERNAME>" set "OS_PROJECT_ID=<OS_PROJECT_ID>" set "OS_PROJECT_DOMAIN_NAME=<OS_PROJECT_DOMAIN_NAME>" set "OS_USER_DOMAIN_NAME=<OS_USER_DOMAIN_NAME>" set "OS_REGION_NAME=RegionOne" set "OS_INTERFACE=public" set "OS_IDENTITY_API_VERSION=3"
Если хотите, чтобы переменные окружения сохранились в реестре для следующих сеансов, то используйте вместо set команду setx. Однако сохранение пароля командой setx нежелательно с точки зрения безопасности и допустимо только в тестовых и учебных задачах. После выполнения setx закройте CMD и откройте его заново, чтобы новые значения начали использоваться.
- Заполните скрипт значениями из OpenRC-файла
Замените значения-заполнители в угловых скобках <…> фактическими значениями для вашего проекта из полученного ранее, в разделе II, OpenRC-файла, исключая сами скобки, для следующих параметров: <OS_USERNAME>, <OS_PROJECT_ID>, <OS_PROJECT_DOMAIN_NAME>, <OS_USER_DOMAIN_NAME>.
Результат заполнения значениями может выглядеть, например, так:
@echo off
set "OS_AUTH_URL=https://cli.pbcloud.services:5000/v3/"
set "OS_USERNAME=wuofcwvh"
set "OS_PROJECT_ID=f805701a98324d3398b5365707e2fd4c"
set "OS_PROJECT_DOMAIN_NAME=my-domain-31-715-725-1746533363"
set "OS_USER_DOMAIN_NAME=my-domain-31-715-725-1746533363"
set "OS_REGION_NAME=RegionOne"
set "OS_INTERFACE=public"
set "OS_IDENTITY_API_VERSION=3"- Выберите способ получения пароля
Если вы хотите сохранить пароль от облачной инфраструктуры в скрипте, то добавьте в него строку:set "OS_PASSWORD=<OS_PASSWORD>"
где <OS_PASSWORD> замените на пароль от облачной инфраструктуры, полученный вами в разделе I. “Получение пароля из панели управления услугой”.
Однако вы должны быть уверены, что скрипт не будет доступен для посторонних, так как в нём будут содержаться все данные, которые необходимы для подключения к вашей облачной инфраструктуре и управления ею.
Более безопасным является метод, когда пароль будет запрашиваться каждый раз при настройке переменных окружения. Для реализации этого метода, вместо прямого указания пароля, добавьте в скрипт следующую строку:
set /p OS_PASSWORD=OpenStack password:
Эта строка запрашивает у пользователя пароль (ввод будет виден) для аутентификации в облаке и устанавливает его как переменную окружения только для текущего сеанса, не сохраняя на диске.
Использование скрипта
Запустите в CMD (командной строке) скрипт аутентификации. Например, для скрипта os_auth.cmd, находящегося в текущем каталоге, команда запуска будет выглядеть следующим образом:
call os_auth.cmdСкрипт установит переменные окружения для аутентификации в облачной инфраструктуре через OpenStackClient.
Очистка переменных окружения в текущем сеансе
Если вам нужно очистить переменные окружения в текущем сеансе, например, в целях безопасности или чтобы аутентифицироваться в другой облачной инфраструктуре, то выполните в CMD (командной строке) следующую команду:
#Удаление всех переменных окружения, начинающихся с "OS_"
for /f "tokens=1 delims==" %v in ('set OS_ 2^>nul') do set "%v="Все переменные окружения, начинающиеся на “OS_”, будут очищены.
Внимание: Очистка переменных окружения не гарантирует полное удаление данных из памяти ОС. Для максимальной безопасности перезапустите сеанс консоли/терминала после работы с конфиденциальными данными.
Аутентификация через Git for Windows (Git Bash)
Если в вашей системе установлен Git Bash, вы можете использовать его для аутентификации в облачной инфраструктуре и управления ею.
- Запустите Git Bash
Все дальнейшие операции будут выполняться в терминале Git Bash.
- Найдите путь к openstack.exe
В Git Bash не всегда прописаны пути, которые есть в Windows, в частности путь к папке, где содержатся скрипты Python и OpenStackClient. Найдём этот путь:
/c/Windows/System32/where.exe openstack.exe
Результат вывода может быть, например, таким:
C:\Users\testuser\AppData\Local\Programs\Python\Python313\Scripts\openstack.exe
Если команда не возвращает путь, убедитесь, что OpenStackClient установлен корректно, в соответствии с инструкцией: “Установка OpenStackClient”.
- Добавьте полученный путь в PATH Git Bash
Добавьте следующий блок кода в терминал Git Bash, заменив <Путь_к_скриптам> на путь, полученный на предыдущем шаге, но без имени файла openstack.exe:# Вставьте вместо <Путь_к_скриптам> Windows‑путь к папке со скриптами win_path='<Путь_к_скриптам>' # Преобразуем Windows‑путь в Unix‑вид для Git Bash unix_path=$(cygpath -u "$win_path") # Добавим путь в Unix‑виде в PATH, если его ещё нет grep -Fqx "export PATH=\"$unix_path:\$PATH\"" ~/.bashrc 2>/dev/null || echo "export PATH=\"$unix_path:\$PATH\"" >> ~/.bashrc # Подключаем ~/.bashrc из ~/.bash_profile, чтобы изменения PATH из ~/.bashrc применялись автоматически при новом запуске Git Bash (добавляем строку только если её ещё нет). grep -Fqx 'source ~/.bashrc' ~/.bash_profile 2>/dev/null || echo 'source ~/.bashrc' >> ~/.bash_profile # Применим изменения в текущем сеансе source ~/.bashrc
Результат может выглядеть, например, так:
win_path='C:\Users\testuser\AppData\Local\Programs\Python\Python313\Scripts'
unix_path=$(cygpath -u "$win_path")
grep -Fqx "export PATH=\"$unix_path:\$PATH\"" ~/.bashrc 2>/dev/null || echo "export PATH=\"$unix_path:\$PATH\"" >> ~/.bashrc
grep -Fqx 'source ~/.bashrc' ~/.bash_profile 2>/dev/null || echo 'source ~/.bashrc' >> ~/.bash_profiles
ource ~/.bashrc
После выполнения полученного блока команд проверьте успешность операции:
openstack --version
Если вы увидите версию OpenStackClient (например, openstack 8.2.0), то путь добавлен успешно и при следующем запуске Git Bash добавленный путь будет доступен автоматически.
- Запустите OpenRC-файл
Для запуска скрипта используйте команду вида:source <(tr -d '\r' < "<путь_и_имя_OpenRC-файла>")
где:
<путь_и_имя_OpenRC-файла> — Путь к OpenRC-файлу, который указывается в Unix-стиле, где используются прямые слеши вместо обратных, а буква диска (например, C:) заменяется на префикс (например, /c/).
Например, для файла openrc.sh, находящегося в директории C:\downloads\, команда будет выглядеть так:
source <(tr -d '\r' < "/c/downloads/openrc.sh")
Эта команда выполнит скрипт openrc.sh, который запросит пароль для облака у пользователя и установит переменные окружения для аутентификации.
- Введите пароль
На сообщение вида: “Please enter your OpenStack Password for project <PROJECT> as user <USER>” введите пароль от облачной инфраструктуры, полученный вами в разделе: “I. Получение пароля из панели управления услугой”.
Если по какой-то причине пароль не был запрошен, введён неверно или вы пропустили его ввод, то задайте пароль вручную:read -rsp "Пароль OpenStack: " OS_PASSWORD; echo; export OS_PASSWORD
- Проверьте авторизацию
openstack token issue
При успешной авторизации отобразится информация о сгенерированном токене авторизации.
- Готово
Теперь вы можете управлять облаком через OpenStackClient из консоли Git Bash.
Примечание: После закрытия Git Bash сеанс аутентификации (переменные окружения из OpenRC) сбрасывается. Для повторной аутентификации запустите openrc.sh снова (см. шаг 4). Путь в PATH остаётся — он сохранён в ~/.bashrc.
Очистка переменных окружения в текущем сеансе
Для очистки переменных окружения в текущем сеансе, используйте команду:
unset $(env | grep -E '^OS_' | cut -d= -f1)Переменные окружения с префиксом «OS_» будут удалены. Чтобы гарантировать их полное удаление, рекомендуется перезапустить терминал.
IV. Аутентификация из Linux и macOS
Чтобы установить переменные окружения для работы OpenStackClient, нужно запустить openrc.sh, процедура получения которого показана в разделе “II. Получение OpenRC-файла”.
- Запустите OpenRC-файл
Для запуска используйте команду вида:source <путь>/openrc.sh
где:
<путь> — это путь к файлу openrc.sh.
Например, если openrc.sh находится в текущей директории:
source openrc.shИли, например, если openrc.sh находится в директории /home/ubuntu/:
source /home/ubuntu/openrc.sh
Скрипт установит переменные окружения для аутентификации в облачной инфраструктуре, а также запросит пароль от неё.
- Введите пароль
На сообщение вида: “Please enter your OpenStack Password for projectas user ” введите пароль от облачной инфраструктуры, полученный вами в разделе: “I. Получение пароля из панели управления услугой”.
Если по какой-то причине пароль не был запрошен, введён неверно или вы пропустили его ввод, то задайте пароль вручную.- bash (Linux/macOS):
read -rsp "Пароль OpenStack: " OS_PASSWORD; echo; export OS_PASSWORD - zsh (macOS по умолчанию):
read -rs "OS_PASSWORD?Пароль OpenStack: "; echo; export OS_PASSWORD
Эти команды запрашивают пароль и сохраняют его в переменную окружения для последующей аутентификации.
- bash (Linux/macOS):
- Проверьте авторизацию
openstack token issue
При успешной авторизации отобразится информация о сгенерированном токене авторизации.
- Готово
Теперь вы можете управлять облаком из терминала.
Примечание: Переменные окружения, установленные через source openrc.sh, действуют только в текущем сеансе терминала и сбрасываются после его закрытия. Для повторной аутентификации снова выполните шаг 1 (запуск openrc.sh).
Очистка переменных окружения в текущем сеансе
Для очистки переменных окружения в текущем сеансе, используйте команду:
unset $(env | grep -E '^OS_' | cut -d= -f1)Переменные окружения с префиксом «OS_» будут удалены. Чтобы гарантировать их полное удаление, рекомендуется перезапустить терминал.
Что дальше?
После успешной аутентификации вы можете полноценно управлять облачной инфраструктурой: создавать, изменять и удалять ресурсы, настраивать сети и политики безопасности, отслеживать состояние сервисов и т. д.
Где искать нужные команды:
- Подробные CLI‑команды для работы с конкретными типами ресурсов собраны в соответствующих подразделах раздела “Облачная инфраструктура”.
- Команды для получения сводной информации о ресурсах проекта и состоянии облака вынесены в подраздел “Команды CLI для сбора сведений о ресурсах проекта”.