Работа с сервисом через CLI
CLI (интерфейс командной строки) позволяет автоматизировать работу с виртуальным дата-центром и быстро управлять виртуальными серверами, дисками, хранилищами.
Настройка CLI на Linux
Установим консольный клиент python-openstack на примере Ubuntu:
Обновите список пакетов на сервере
sudo apt-get update
Поставьте требуемые пакеты
sudo apt-get install python-openstackclient
Установите файл, который используется для перехода в окружение OpenStack. Для этого перейдите в панель управления mgmt.airnode.ru/dashboard/project/api_access/ и скачайте «OpenStack RC-файл версии 3». Файл находится в правом меню в шапке панели управления:
Разместите скачанный файл на этот сервер или создайте в нем файл с таким же содержимым.
Выполняем скачанный скрипт с указанием пути до него командой:
$ source /полный путь/скачанный_файл.sh
Система запросит пароль пользователя. После его ввода вы сможете использовать команды консольного клиента для управления вашей инфраструктурой. Проверить, что все получилось правильно можно командой, которая выведет список всех доступных действий:
$ openstack --help
Настройка CLI на Windows
Настройка cli client OpenStack на примере windows 2016
Установите последнюю версию Python с сайта python.org/downloads/windows/.
Запустите PowerShell
Проверьте, что Python работает, командой
pip
. Команда выводит справочную информацию о приложении.Если командная строка выведет ошибку, проверьте правильность путей для переменной Path. Для этого в панели управления Windows откройте раздел “Система” и нажмите кнопку “Дополнительные параметры системы”. В открывшемся окне откройте вкладку «Дополнительно». Нажмите «Переменные среды». Выберите переменную Path и нажмите «изменить». Измените пути в соответствии с расположением установленного пакета Python.
Установите OpenStack cli командой:
pip install python-openstackclient
Чтобы авторизоваться в вашем виртуальном дата-центре, выполните команды:
$env:OS_AUTH_URL = "https://mgmt.airnode.ru:5000/v3/"
$env:OS_IDENTITY_API_VERSION = "3"
$env:OS_TENANT_ID = "id_вашего_виртуального_дата-центра"
$env:OS_TENANT_NAME = "Имя_вашего_виртуального_дата-центра"
$env:OS_USERNAME = "Ваш_логин_openstack"
$env:OS_PASSWORD = "Ваш_пароль_openstack"
Все данные для подключения, кроме пароля, можно взять в панели управления mgmt.airnode.ru/dashboard/project/api_access/ в файле RC
Проверить работу с CLI можно с помощью команды nova list
. В случае успеха команда выведет на консоль информацию о виртуальном дата-центре.
Для каждого сеанса PowerShell переменные env требуется настраивать заново. Рекомендуем создать скрипт для автоматической настройки данных переменных.
Настройка CLI на других операционных системах
На других операционных системах можно установить пакеты через pip.
Пример:
$ wget \https://mgmt.airnode.ru:8080/swift/v1/82cff387e99e464c9cf232a0285b10e7/airnode/software/get-pip.py
$ sudo python get-pip.py
$ sudo pip install virtualenv
$ pip install python-openstackclient
Пример работы с CLI для создания снапшотов и бэкапов
Создайте сервер с ОС Ubuntu-16
Установите сервер
Обновите список пакетов
sudo apt-get update
Поставьте требуемые пакеты
sudo apt-get install python-openstackclient
Создайте файл «/root/.openstack_snapshotrc». Содержимое файла:
export OS_AUTH_URL=https://mgmt.airnode.ru:5000/v3/
export OS_PROJECT_ID=PROJECT_ID
export OS_PROJECT_NAME="PROJECT_NAME"
unset OS_TENANT_ID
unset OS_TENANT_NAME
export OS_USER_DOMAIN_NAME="Default"
export OS_USERNAME="USERNAME"
export OS_PASSWORD="PASSWORD"
Сделайте скрипт для создания бэкапов
Откройте список дисков:
openstack volume list
Выберите ID нужного диска. Если нужно выбрать все диски, используйте команду:
cinder backup-create 82e6fcc0-24b6-4cf8-887b-8dd84e8bc739 --force --name "test"
Для создания снапшотов можно использовать команду
cinder snapshot-create 82e6fcc0-24b6-4cf8-887b-8dd84e8bc739 --force --name "test"
Если нужно сделать снапшоты всех дисков, используйте модифицированную команду:
for i in `openstack volume list | awk '{print$2}' | grep -v "^$\|ID "`; do cinder snapshot-create $i --force --name "snapshot"; done
Для создания бэкапов всех дисков можно использовать команду:
for i in `openstack volume list | awk '{print$2}' | grep -v "^$\|ID "`; do cinder backup-create $i --force --name "snapshot"; done
Следующий скрипт создает снапшоты дисков (скрипт можно добавить в cron):
#!/bin/bash
#проверяем файл окружения
if [[ ! -f "/root/.openstack_snapshotrc " ]]; then
echo "/root/.openstack_snapshotrc file required. "
exit 1
else
source "/root/.openstack_snapshotrc "
fi
#создаем переменную с именем снапшотов, пусть в ней будет дата
SNAPSHOT_NAME="backup-snapshot-$(date "+%Y%m%d-%H:%M") "
#Добавим дату в описание
SNAPSHOT_DES="$(date "+%Y%m%d-%H:%M") "
#Создаем снапшоты
for i in `openstack volume list | awk '{print$2}' | grep -v "^$\|ID "`; do cinder snapshot-create 82e6fcc0-24b6-4cf8-887b-8dd84e8bc739 --force --name "$SNAPSHOT_NAME " --description "$SNAPSHOT_DES "; done
Ссылки на готовые примеры скриптов для создания бэкапов:
github.com/Akrog/cinderback
github.com/StackOps/cinder-scheduled-snapshots