2018年1月29日月曜日

VMware Admiral で API を使ってテンプレートを docker-compose.yml としてエクスポートする方法

概要

Admiral は作成したテンプレートをエクスポートできる機能があります
管理画面からはテンプレートの一覧でエクスポートボタンを押せば YAML ファイルがダウンロードできます
API でも取得することができたのでその方法を紹介します

環境

  • Ubuntu 16.04.3
  • Admiral v1.3.0

API でテンプレートを取得する

docker-compose.yml を取得する場合はこんな感じでコールします

  • curl -H 'localhost:8282/resources/composite-templates/?selfLink=/resources/composite-descriptions/877dd4190ad5dc75563935eeacdb0&format=docker'

877dd4190ad5dc75563935eeacdb0 の部分はテンプレートの ID を入力してください
これで以下のような YAML 情報がテキストで取得できます

---
version: "2"
services:
  web:
    image: "registry.hub.docker.com/library/nginx"
    restart: "no"

上記のテンプレートは nginx イメージで作成したコンテナ定義を 1 つ追加した場合の YAML になります
ちなみにユーザ認証を有効にした場合は x-xenon-auth-token ヘッダを付与してコールしてください

また最後の format=docker を外すとテンプレート自体の定義をエクスポートすることができます
エクスポートした定義は Admiral 上にインポートすることでテンプレートとして使うことができます

最後に

Admiral でテンプレートから docker-compose.yml をエクスポートする方法を紹介しました
結構便利な機能かなと思います
ただ docker-compose のバージョンが 2 までしか対応してないのでバージョン 3 以上に対応する場合は取得したあと自分でコンバートする必要があります

参考サイト

0 件のコメント:

コメントを投稿