LoginSignup
2
3

More than 5 years have passed since last update.

VMware vRA (vCAC) Cloud Clientを使ってみる

Last updated at Posted at 2015-03-25

vRealize Automation/vCenter Orchestratorを操作するCLIツール(Cloud Client)がVMwareオフィシャルで提供されていたので、少し触ってみました。

Cloud Clientを使うことで以下のような操作をCLIから実行できるようになります。

  • Blue Print / Catalog Itemの作成
  • Catalog Itemのリクエスト
  • IaaS Endpointの作成
  • vCO Workflowの実行

本当は生のREST APIを直接叩けば済む話なのですが、これを使ったほうが各種操作がコマンドとして整理されていて、楽に使えると思います。

ダウンロード

以下のURLからダウンロードできます。2015/3/24時点での最新バージョンは3.2.0です。

vRealize CloudClient 3.2
https://developercenter.vmware.com/web/dp/tool/cloudclient

ダウンロードして適当なディレクトリに解凍しておきます。

$ wget https://vdc-download.vmware.com/vmwb-repository/dcr-public/e8b140e7-cf16-4ff6-af88-a22ad7e9f5d1/01b1dcf0-9ed2-4452-8881-61e29faa2bc6/cloudclient-3.2.0-2594179-dist.zip
$ unzip cloudclient-3.2.0-2594179-dist.zip
  • なお、「vCAC CLI」というコマンドラインツールも提供されているのですが、こちらはエンドポイントを指定してvRA(vCAC)のAPIを叩くような、より薄いツールのようです。

対話的に叩いてみる

まずは、試しに対話的に触ってみます。

vRAへのログイン

解凍したディレクトリに移動し、bin以下にあるシェルスクリプトから起動します。利用許諾が表示されるので、一番したまでスクロールして"Y"を入力します。

$ cd cloudclient-3.2.0-2594179
$ ./bin/cloudclient.sh
...

Do you accept the terms of license agreement? (Y)es/(N)o:Y      
===================================================
 _____ _                 _ _____ _ _            _   
/  __ \ |               | /  __ \ (_)          | |  
| /  \/ | ___  _   _  __| | /  \/ |_  ___ _ __ | |_ 
| |   | |/ _ \| | | |/ _` | |   | | |/ _ \ '_ \| __|
| \__/\ | (_) | |_| | (_| | \__/\ | |  __/ | | | |_ 
 \____/_|\___/ \__,_|\__,_|\____/_|_|\___|_| |_|\__|


===================================================
Version : 3.2.0
*Tip* : You can hit tab to move through commands and arguments
*Tip* : You can autologon with a CloudClient.properties file

Welcome to the VMware CloudClient
CloudClient>

vRAの特定のテナントに対してログインしてみます。

CloudClient>vra login userpass --user USER@DOMAIN --password PASSWORD --server xxx.xxx.xxx.xxx --tenant TENANT
vRA SSO login: [ACTIVE], session: [INACTIVE], user=[USER@DOMAIN], server=[https://xxx.xxx.xxx.xxx], tenant=[TENANT]
IaaS Model Manager login: [INACTIVE], session: [INACTIVE]

ログインに成功すると、"vRA SSO login: [ACTIVE]"が表示されるはずです。

コマンドを叩いてみる

ログイン状態となったところで、組み込みコマンドを叩いてみます。"help"で組み込みコマンドを一覧表示できます。

  • Catalog一覧の表示
CloudClient>vra catalog list
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+
| id                                   | organization.subtenantLabel | organization.subtenantRef            | name                                        | catalogItemTypeRef.label   | status    |
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Config Something                            | Advanced Service Blueprint | PUBLISHED |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Windows2008                                 | Multi-Machine Service      | PUBLISHED |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Windows2012                                 | Virtual Machine            | PUBLISHED |
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+

ワンライナーとして叩く

対話モードでの動作は確認できたので、次に組み込みコマンドも含んだワンライナーとして叩いてみます。

CloudClient.propertiesの作成

対話モードでは手動でログインしましたが、毎回入力しなくてすむように、ログイン情報を"CloudClient.properties"という外部ファイルに書き出しておきます。

まずはCloudClientのコマンドからCloudClient.propertiesのひな形と、パスワードファイルを生成しておきます。

CloudClient>login autologinfile
CloudClient>login keyfile --file vRA_password.txt --password PASSWORD

生成されたファイルを開くと、vRA/vRA(IaaS)/vCOの3種類のアカウント情報を設定できるようになっています。
ここではvRAのアカウントを設定します。vra_keyfileには、先ほど生成したvRA_password.txtを指定します。

vi CloudClient.properties

#vra_server : vRealize Automation Virtual Appliance
vra_server=IP_ADDR_OF_VCAC

#vra_tenant : Tenant Name, defaults to vsphere.local
vra_tenant=TENANT_NAME

#vra_username : SSO username in the form user@domain.com
vra_username=USERNAME

#vra_password : SSO password
vra_password=PASSWORD

#vra_keyfile : Encrypted file location of SSO password
vra_keyfile=vRA_password.txt

叩いてみる

あとは、実行したいコマンドを引数としてcloudclient.shを実行すれば、結果が出力されます。

./bin/cloudclient.sh vra catalog list
vRA SSO login: [ACTIVE], session: [INACTIVE], user=[USER@DOMAIN], server=[https://xxx.xxx.xxx.xxx], tenant=[TENANT]
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+
| id                                   | organization.subtenantLabel | organization.subtenantRef            | name                                        | catalogItemTypeRef.label   | status    |
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Config Something                            | Advanced Service Blueprint | PUBLISHED |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Windows2008                                 | Multi-Machine Service      | PUBLISHED |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | IT                          | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Windows2012                                 | Virtual Machine            | PUBLISHED |
+--------------------------------------+-----------------------------+--------------------------------------+---------------------------------------------+----------------------------+-----------+

(おまけ: REST APIを直接叩く場合)

ところで、当然vRAは生のREST APIも提供しているので、それを直接叩いても同様のことができるはずなのですが、今回試した中ではうまく行きませんでした。一応内容をメモ代わりに記載しておきます。

Tokenの取得

特に変わったことはなく、jsonでusernameとpassword、tenant名を指定してリクエストします。自己証明を使っているので--insecureを指定します。

Request
curl -v --insecure -H "Accept: application/json" -H "Content-type: application/json" -X POST \
-d '{"username":"NAME@DOMAIN","password":"PASSWORD","tenant":"TENANT"}' \
https://IP_OF_VCAC/identity/api/tokens

すると、こんな感じでtokenが返却されます。

Response
{
    "expires": "2015-03-25T20:25:05.178Z",
    "id": "MTQ...N2Y=",
    "tenant": "TENANT"
}

なお、有効期間はデフォルトで24時間となっています。変更したい場合には、vCAC Appliance内の
/etc/vcac/security.properties
にある、
identity.basic.token.lifetime.hours=N
を任意に指定することで変更可能です。

リクエストを投げてみる

取得したtokenを使って、GETリクエストを投げてみます。

Request
curl -v --insecure -H "Accept: application/json" \
-H "Authorization: Bearer MTQ...N2Y=" \
-X GET https://IP_OF_VCAC/catalog-service/api/consumer/catalogItems

...が、どうも空のレスポンスが返ってきてしまいます。

Response
{
    "links": [],
    "content": [],
    "metadata": {
        "size": 20,
        "totalElements": 0,
        "totalPages": 0,
        "number": 1,
        "offset": 0
    }
}

Cloud ClientやvCAC CLIを使うと正しく一覧が返ってくるので、リクエストの投げ方に問題があると思われます。時間があるときにもう少し調べてみる。

参考

CloudClient Documentation(以下からダウンロード)
https://developercenter.vmware.com/web/dp/tool/cloudclient/3.2.0

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3