Работа с сервисом через CLI

CLI (интерфейс командной строки) позволяет автоматизировать работу с виртуальным дата-центром и быстро управлять виртуальными серверами, дисками, хранилищами.

Настройка CLI на Linux

Установим консольный клиент python-openstack на примере Ubuntu:

  1. Обновите список пакетов на сервере

     sudo apt-get update
  2. Поставьте требуемые пакеты

     sudo apt-get install python-openstackclient
  3. Установите файл, который используется для перехода в окружение OpenStack. Для этого перейдите в панель управления mgmt.airnode.ru/dashboard/project/api_access/ и скачайте «OpenStack RC-файл версии 3». Файл находится в правом меню в шапке панели управления:

  4. Разместите скачанный файл на этот сервер или создайте в нем файл с таким же содержимым.

  5. Выполняем скачанный скрипт с указанием пути до него командой:

    $ source /полный путь/скачанный_файл.sh
  6. Система запросит пароль пользователя. После его ввода вы сможете использовать команды консольного клиента для управления вашей инфраструктурой. Проверить, что все получилось правильно можно командой, которая выведет список всех доступных действий:

    $ openstack --help

Настройка CLI на Windows

Настройка cli client OpenStack на примере windows 2016

  1. Установите последнюю версию Python с сайта python.org/downloads/windows/.

  2. Запустите PowerShell

  3. Проверьте, что Python работает, командой pip. Команда выводит справочную информацию о приложении.

  4. Если командная строка выведет ошибку, проверьте правильность путей для переменной Path. Для этого в панели управления Windows откройте раздел “Система” и нажмите кнопку “Дополнительные параметры системы”. В открывшемся окне откройте вкладку «Дополнительно». Нажмите «Переменные среды». Выберите переменную Path и нажмите «изменить». Измените пути в соответствии с расположением установленного пакета Python.

  5. Установите OpenStack cli командой:

    pip install python-openstackclient
  6. Чтобы авторизоваться в вашем виртуальном дата-центре, выполните команды:

    $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 для создания снапшотов и бэкапов

  1. Создайте сервер с ОС Ubuntu-16

  2. Установите сервер

  3. Обновите список пакетов

    sudo apt-get update
  4. Поставьте требуемые пакеты

    sudo apt-get install python-openstackclient
  5. Создайте файл «/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"
  6. Сделайте скрипт для создания бэкапов

  7. Откройте список дисков:

    openstack volume list
  8. Выберите ID нужного диска. Если нужно выбрать все диски, используйте команду:

    cinder backup-create 82e6fcc0-24b6-4cf8-887b-8dd84e8bc739 --force --name "test"
  9. Для создания снапшотов можно использовать команду

    cinder snapshot-create 82e6fcc0-24b6-4cf8-887b-8dd84e8bc739 --force --name "test"
  10. Если нужно сделать снапшоты всех дисков, используйте модифицированную команду:

    
    for i in `openstack volume list | awk '{print$2}' | grep -v "^$\|ID "`; do cinder snapshot-create $i --force --name "snapshot"; done
                                
  11. Для создания бэкапов всех дисков можно использовать команду:

    
    for i in `openstack volume list | awk '{print$2}' | grep -v "^$\|ID "`; do cinder backup-create $i --force --name "snapshot"; done
                                
  12. Следующий скрипт создает снапшоты дисков (скрипт можно добавить в 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