Статьи

Интерфейс OCCI для CloudStack

Этот пост был написан
.

CloudStack имеет свой собственный API. Облачные оболочки, такие как libcloud и jclouds, хорошо работают с этим нативным API, но CloudStack не предоставляет никаких стандартных API, таких как OCCI и CIMI . Мы (на самом деле Исаак Чианг, я только что проверил и указал ему верное направление) начали работать над бэкэндом CloudStack для rOCCI, используя наш драгоценный камень CloudStack Ruby . Выбор rOCCI был сделан из-за существования существующего бэкэнда Opennebula и принятия OCCI на испытательном стенде федеративной облачной среды Европейской инициативы по сетям .

Давайте начнем с установки сервера rOCCI , эта работа еще не была объединена с апстримом , поэтому вам нужно будет работать с форка Исаака Чанга.

    git clone https://github.com/isaacchiang/rOCCI-server.git
    bundle install
    cd etc/backend
    cp cloudstack/cloudstack.json default.json

Отредактируйте файл defautl.json, чтобы он содержал информацию о вашем облаке CloudStack (например, apikey, secretkey, endpoint). Запустите сервер rOCCI:

    bundle exec passenger start

Сервер должен работать на http://0.0.0.0:3000 и запустить тесты:

    bundle exec rspec

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

Вы также можете попробовать клиент OCCI. Установите клиент rOCCI из Github:

    git clone https://github.com/gwdg/rOCCI-cli.git
    cd rOCCI-cli
    gem install bundler
    bundle install
    bundle exec rake test
    rake install

После этого вы сможете использовать клиент OCCI:

    occi --help

Протестируйте его на сервере, который вы запускали ранее. Вам понадобится работающее облако CloudStack. Либо производственный, либо экземпляр разработки, использующий DevCloud. Учетные данные и конечная точка этого облака будут введены в файл `default.json`, который вы создали в предыдущем разделе. Попробуйте пару клиентских команд OCCI:

    $ occi --endpoint http://0.0.0.0:3000/ --action list --resource os_tpl
    Os_tpl locations:
     os_tpl#6673855d-ce9b-4997-8613-6830de037a8f
    $ occi --endpoint http://0.0.0.0:3000/ --action list --resource resource_tpl
    Resource_tpl locations:
     resource_tpl##08ba0343-bd39-4bf0-9aab-4953694ae2b4
     resource_tpl##f78769bd-95ea-4139-ad9b-9dfc1c5cb673
     resource_tpl##0fd364a9-7e33-4375-9e10-bb861f7c6ee7

Вы узнаете `uuid` из шаблонов и предложений услуг, которые вы создали в CloudStack. Чтобы запустить экземпляр:

    $ occi --endpoint http://0.0.0.0:3000/ --action create --resource compute 
           --mixin os_tpl#6673855d-ce9b-4997-8613-6830de037a8f 
           --mixin resource_tpl#08ba0343-bd39-4bf0-9aab-4953694ae2b4
           --resource-title foobar

Дескриптор созданного ресурса будет возвращен. Это оно !

Мы будем продолжать улучшать этот драйвер, чтобы обеспечить качественный интерфейс OCCI для пользователей, которые хотят использовать стандарт. Справедливости ради, мы также будем работать над реализацией CIMI. Надеемся, что некоторые облака в федеративном облаке EGI выберут CloudStack и помогут нам улучшить этот интерфейс OCCI. В CloudStack мы стремимся предоставить интерфейсы, которые хотят пользователи, и поддерживать их в актуальном состоянии и с качеством продукции, чтобы пользователи могли зависеть от него.