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 мы стремимся предоставить интерфейсы, которые хотят пользователи, и поддерживать их в актуальном состоянии и с качеством продукции, чтобы пользователи могли зависеть от него.