Web サービスを使用したグループの管理

npc は、ユーザにプロビジョニング タスクと設定タスクを自動化できる API セットを提供します。 最も頻繁に繰り返されるタスク、または時間のかかるタスクは、Web サービスによりユーザに公開されます。 これらの API の一部は、REST(Representational State Transfer)モデルと一致する Web サービスから構成されます。
capm360
NetOps Portal
は、ユーザがプロビジョニング タスクと設定タスクを自動化できる API セットを提供します。 最も頻繁に繰り返されるタスク、または時間のかかるタスクは、Web サービスによりユーザに公開されます。 これらの API の一部は、REST(Representational State Transfer)モデルと一致する Web サービスから構成されます。
このユース ケースでは、
NetOps Portal
REST Web サービスを使用してグループまたはコレクションを作成し、管理するために、管理者が展開できる手順について説明します。 複数のグループまたはサブグループを追加および削除できます。 グループにアイテムを追加したり、グループに入力するグループ ルールを作成したりできます。 また、グループ定義をエクスポートしたり、インポートしたりできます。
このユース ケースでは REST クライアント(総括的な Web サービス ユーザ インターフェース アプリケーション)を使用する場合に実行する手順について説明します。 このユース ケースには、デフォルト サーバ ポート 8181 を使用して生成する URI が含まれています。
プログラムによるグループの作成
グローバル管理者は、CA
NetOps Portal
REST Web サービスを使用してグループを作成し、データを入力できます。 グループは常にテナント定義と関連付けられます。 マルチテナンシーを展開していない場合、グループが[デフォルト テナント]と関連付けられます。 展開している場合、グループ管理タスクは現在のテナントにのみ適用されます。
Web サービスは、グループを識別する 2 つの方法を提供します。
  • デフォルト第 1 レベルまたはルート グループ(「すべてのグループ」)のサブグループとしてグループを識別する、完全なグループ パスを使用する。
    グループ自体は、ルート グループから階層的に拡大する[グループ]ツリーのノードです。
  • ノードを識別する内部割り当て数値である、グループ ID を使用する。
    識別子はグループへのパスに割り当てられません。
    グループが入れ子になっている場合、完全なグループ パスを入力しないで済むように、このメソッドを使用し、グループを識別します。
グループに監視対象デバイスを自動的に追加するルールを作成できます。 また、グループにサブグループを追加できます。
グループの識別情報の取得
グループを更新するとき、グループのグループ パスまたはグループ ID を使用してそのグループを識別します。 グループ パスは、[グループ]ツリーのグループの位置を表示します。 グループ ID は通常、グループ パスを使用するよりは、グループ情報を取得し、グループを管理する方法として優れています。グループ パスは長くなる場合があるためです。
以下の手順に従います。
  1. CA
    NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントで URL に以下の形式を使用します。
    http://
    PC_host
    :8181/pc/center/webservice/groups/
    idName
    /
    idValue
    • IdName
      グループ指定用にサポートされている値。 使用可能な値は、以下の URL 上で GET 操作を実行すると取得できます。
      http://
      PC_host
      :8181/pc/center/webservice/groups/idNames
      idName
      には以下のいずれかのパラメータを指定します。
      • groupItemId
        - 内部的に割り当てられたグループ ID。
      • groupPath
        - エンコードしたスラッシュ(%2F)で各グループを区切った形式のグループ パス。
    • idValue
      グループを指定するために使用する値。ID 名の性質に基づきます。
      idName
      フィールドの値に応じて以下のいずれかを使用します。
      groupItemId
      - グループの ID が想定されます。
      groupPath
      - エンコードしたスラッシュ(%2F)で各グループを区切った形式のグループ パスが想定されます。
    : 指定されたグループの詳細とルールの定義を表示するには、GET リクエストをそのグループの親に発行します。 以下のコールにより、
    All Groups
    の下で
    ParentGroup
    と呼ばれる特定のグループ下のグループの詳細とルールの定義が取得されます。
    http://
    PC_host
    :8181/pc/center/webservice/groups/groupPath/All%20Groups%2fParentGroup
  3. HTTP メソッド
    GET
    を選択します。
  4. NetOps Portal
    へのグローバル管理者アクセス権があるユーザ アカウントのリクエスト ヘッダに、有効なユーザ名とパスワードを指定します。
  5. メソッドを実行します。
    返される XML にはグループ アイテム識別子が含まれます。
    このメソッドは、完全なグループ パスを取得する場合にも使用できます。
以下の例で返される XML には、Inventory という名前のシステム グループに関する情報が含まれます。
<?xml version="1.0" encoding="UTF-8"?> <GroupTree id="5" inheritDefault="true" path="Inventory"> <Group desc="This group contains groups for the various item types that are associated with all data sources." id="12" inherit="false" location="" name="All Items" type="automatic group"> <Group desc="Includes networks from all Application Delivery Analysis data sources." id="40" inherit="true" location="" name="Application Delivery Analysis Networks" type="automatic group" /> <Group desc="This group contains all the applications reported by each data source." id="41" inherit="true" location="" name= "Applications" type="automatic group" /> <Group desc="This group contains all the device components reported by each data source." id="113" inherit="true" name="Device Components" type="automatic group" /> <Group desc="This group contains all the VMware ESX hosts reported by each data source." id="35" inherit="true" location="" name="ESX Hosts" type="automatic group" /> <Group desc="Includes interfaces from all data sources." id="50" inherit="true" location="" name="Interfaces" type="automatic group" /> <Group desc="This group contains all the pingable devices reported by each data source." id="114" inherit="true" name="Pingable Devices" type="automatic group" /> <Group desc="Includes routers from all data sources." id="31" inherit="true" location="" name="Routers" type="automatic group" /> <Group desc="Includes servers from all data sources." id="32" inherit="true" location="" name="Servers" type="automatic group" /> <Group desc="Includes switches from all data sources." id="33" inherit="true" location="" name="Switches" type="automatic group" /> <Group desc="This group contains all the virtual machines reported by each data source." id="34" inherit="true" location="" name="Virtual Machines" type="automatic group" /> <Group desc="This group contains all the voice interfaces reported by each data source." id="51" inherit="true" location="" name= "Voice Interfaces" type="automatic group" /> <Group desc="This group contains all the voip locations reported by each data source." id="52" inherit="true" location="" name= "VoIP Locations" type="automatic group" /> </Group> <Group desc="Includes every data source that has reported configuration information to the performance center." id="4" inherit="false" location="" name="Data Sources" type="automatic group"> <Group desc="Contains configuration information reported to the performance center by Data Aggregator" id="115" inherit="true" name="da" type="system group" /> <Group desc="Contains configuration information reported to the performance center by Event Manager" id="100" inherit="true" name="[email protected]" type="system group"> <Group desc="Devices created by event manager" id="101" inherit= "true" name="Devices" type="system group" /> </Group> </Group>
上記の結果は、インベントリ グループのグループ ID が 5 であることを示します。
<GroupTree id="5" inheritDefault="true" path="Inventory">
完全なグループ パスを取得するために、この値を使用できます。 以下の URL を入力します。
http://
PC_host
:8181/pc/center/webservice/groups/groupItemId/5
この結果から、インベントリ グループへの完全パスが「/All Groups/Inventory」であることが分かります。 インベントリ システム グループのサブグループもすべて返されます。
その後、次の例のように、グループ名パラメータに対して返された値を使って、サブグループのグループ パスを作成できます。
/All%20Groups/Inventory/Device%20Components
グループ パスからグループ ID を取得する URL は、以下の例のようになります。
http://
PC_host
:8181/pc/center/webservice/groups/groupPath/All%20Groups%2FInventory%2FDevice%20Components
URL にグループ パスを指定する場合は、スラッシュを表すパーセント エンコーディング値(上に表示されている %2F)を使用して、パスに含まれる各グループを区切ります。 エンコードなしのスラッシュが、URL 構文内のパス セグメントの区切り文字として予約されているため、このようにする必要があります。
グループ メンバのリストの取得
指定されたグループの直接のメンバであるサブグループおよびアイテムのリストを取得するには、グループ Web サービスを使用します。 返される XML には、指定したグループに関する情報が親エレメントとして表示され、グループおよびアイテムはそれぞれ独自の個別エレメントに分離されます。
グループに直接追加した管理対象アイテムの子としてグループに追加したアイテムは、返されるリストに含まれません。 たとえば、ルータがグループの直接のメンバである場合、そのルータに属するインターフェースはリストに含まれません。
名前または ID がわかっているグループのメンバのリストを取得するには、以下のベース URL を入力します。
http://
PC_host
:8181/pc/center/webservice/groups/
idName
/idValue/items
  • idName
    グループ指定用にサポートされている ID 名。 使用可能な値は、以下の URL 上で GET 操作を実行すると取得できます。
    http://
    PC_host
    :8181/pc/center/webservice/groups/idNames。
    idName
    には以下のいずれかのパラメータを使用します。
    • groupItemId
      - 内部的に割り当てられたグループ ID。
    • groupPath
      - エンコードしたスラッシュ(%2F)で各グループを区切った形式のグループ パス。
    • idValue
      グループを指定するために使用する値。ID 名の性質に基づきます。
      idName
      フィールドの値に応じて以下のいずれかを使用します。
      • groupItemId
        - グループの ID が想定されます。
      • groupPath
        - エンコードしたスラッシュ(%2F)で各グループを区切った形式のグループ パスが想定されます。
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントで URL に以下の形式を使用します。
    http://
    PC_host
    :8181/pc/center/webservice/groups/idName/idValue/items
  3. HTTP メソッド
    GET
    を選択します。
  4. NetOps Portal
    へのグローバル管理者アクセス権があるユーザ アカウントのリクエスト ヘッダに、有効なユーザ名とパスワードを指定します。
  5. メソッドを実行します。
    返される XML には、グループのメンバであるサブグループおよび管理対象アイテムがリストされます。 XML は以下のような内容になります。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <group id="787" name="Test Group" description="" type="group" subType="user"> <groups> <group id="788" name="Test Child Group 1" description="" type="group" subType="user"/> <group id="789" name="Test Child Group 2" description="" type="group" subType="user"/> </groups> <itemTypes> <itemType type="Devices"> <items> <item id="121" name="Austin Switch" description="Cisco IOS Software, Switch 192.168.1.1" type="device" subType="switches" addedBy="BY_USER"/> <item id="124" name="Austin Router" description="Cisco IOS Software, Router 192.168.0.1" type="device" subType="router" addedBy="BY_USER"/> <item id="127" name="Austin Server" description="Linux" type="device" subType="server" addedBy="BY_USER"/> </items> </itemType> <itemType type="Interfaces"> <items> <item id="417" name="eth0/1/0:7" description="Ethernet0/1/0:7" type="interface" subType="physical" addedBy="BY_USER"/> <item id="418" name="eth0/1/0:8" description="Ethernet0/1/0:8" type="interface" subType="physical" addedBy="BY_USER"/> <item id="420" name="eth0/1/0:9" description="Ethernet0/1/0:9" type="interface" subType="physical" addedBy="BY_USER"/> </items> </itemType> </itemTypes> </group>
所有するグループのリストの取得
変更または削除できるのは、自分が所有するグループのみです。 グループを作成した場合は、自分がそのグループの所有者です。 グローバル管理者はグループ ツリー内のすべてのグループの所有者です。 また、グローバル管理者またはテナント管理者は、ユーザのユーザ アカウントを編集し、ユーザにグループ ツリーの「ブランチ」の所有権を与えることができます。
自分が所有者であるグループのリストを取得するには、ユーザ Web サービスを使用します。 ユーザ Web サービスの使用に際しては、以下の説明を確認してください。
ユーザ Web サービスのパラメータおよび使用可能な操作を確認するには、次のコールを発行します。
http://
PC_host
:8181/pc/center/rest/users/documentation
使用可能な GET メソッド
  • get groups owned by user
    指定されたユーザのグループのリストを取得します。 返されるグループは、指定されたユーザが所有するグループです。つまり、このユーザはこれらのグループを変更または削除できます。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/groupsOwnedByUser
  • get groups
    指定されたユーザがビュー アクセス権限を持つグループのリストを取得します。 返されるグループは、指定されたユーザの権限セット内にあるグループです。 ユーザはこれらのグループを変更または削除できません。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/groups
  • get id names
    識別子のリストを取得します。他の Web サービス メソッドでこれを使用してユーザを識別できます。
    http://
    PC_host
    :8181/pc/center/webservice/users/idNames
    • idValue
      識別するカテゴリの値です。 たとえば、
      idName
      userID
      である場合は、ユーザ ID を指定します。
      idName
      userName
      である場合は、ユーザ名を指定します。
  • get authentication types
    ユーザに認証タイプを割り当てるために使用できる識別子のリストを返します。
    http://
    PC_host
    :8181/pc/center/webservice/users/authenticationTypes
使用可能な PUT メソッド
  • update role
    指定されたユーザ アカウントの役割割り当てを更新します。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/role/roleIdName/roleIdValue
  • update time zone
    指定されたユーザ アカウントのタイム ゾーンを更新します。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/timeZone/newTimeZone
  • set groups
    指定されたユーザ アカウントに付与されている権限グループを更新します。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/groups
  • set administered groups
    指定されたユーザ アカウントのグループを更新します。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/administeredGroup
    ユーザ アカウントに管理対象グループを追加するには、(たとえば)以下の形式の XML を指定します。
    <groups> <group ID="5245"/> <group ID="5246"/> <group ID="5247"/> ... </groups>
  • update product privilege per datasource
    指定されたユーザ アカウントの製品権限を更新し、特定のデータ ソースのユーザ インターフェースへのアクセスを有効にします。
    http://
    PC_host
    :8181/pc/center/webservice/users/idName/idValue/ds/
    dsId
    /productPrivilege/newProductPrivilege
    • dsId
      データ ソース識別子です。 使用可能なデータ ソース識別子のリストについては、「基本的なデータソース パラメータ」を参照してください。
      製品権限の詳細については、「ユーザ アカウント製品権限の設定」を参照してください。
使用可能な POST メソッド
  • 作成
    新しいユーザ アカウントを作成します 新しいユーザはログイン ユーザのテナントと関連付けられます。 パラメータには役割割り当てが含まれます。
    http://
    PC_host
    :8181/pc/center/webservice/users/role/roleIdName/roleIdValue
  • create in tenant
    指定された役割割り当てを使用して、指定されたテナントに新しいユーザ アカウントを作成します。
    http://
    PC_host
    :8181/pc/center/webservice/users/tenant/tenantIdName/tenantIdValue/role/roleIdName/roleIdValue
Web サービスを使用したグループの作成
グループ Web サービスを使用して、デフォルトのテナントに関連付けられたグループの作成および設定を行うために、任意の REST クライアントを使用します。 カスタム テナント内にグループを作成する手順は、わずかに異なります。 パラメータとしてグループ ID またはグループ パスを提供できます。
グループを作成する基本的な URL を以下に示します。
http://
PC_host
:8181/pc/center/webservice/groups/
useIds
/
allowDeletes
/items
  • useIds
    グループを識別するために
    groupItemId
    パラメータが使用されることを指定します。 指定されたグループの ID 属性を使用してグループを識別する必要があるかどうかを示します。 グループ Web サービスで新しいグループを作成するときにグループの ID が使用されないようにするには、値「false」を指定します。 これらの ID が内部的に割り当てられると、エクスポートおよび再インポートされたグループを識別するための方法として、ID の信頼性が低下するからです。
  • allowDeletes
    作成しているグループの削除を有効にします。 グループ Web サービスで、既存のグループ内で定義されていて、この XML ドキュメントで上書きされた、任意のルールを更新できます。
http://
PC_host
:8181/pc/center/webservice/groups/groupPath/All%20Groups%2FAustin
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントで URL に以下の形式を使用します。
    http://
    PC_host
    :8181/pc/center/webservice/groups/false/false
  3. 「HTTP」メソッド
    POST
    を選択します。
  4. NetOps Portal
    へのグローバル管理者アクセス権があるユーザ アカウントのリクエスト ヘッダに、有効なユーザ名とパスワードを指定します。
  5. Body Content-type
    として、
    application/XML
    を選択します。
  6. [Body]テキスト セクション内に次の XML を追加して、値を新しいグループに使用する値に置き換えます。
    <GroupTree path="/All Groups"> <Group name="Group Name" desc="Description of the group" inherit="true" type="user group"/> </GroupTree>
    • inherit
      グループにグループ メンバの子アイテムを含めるかどうかを指定します。 たとえば、「inherit」属性を true に設定すると、デバイスがグループに追加された際に、デバイス インターフェースはグループ メンバになります。
    • type
      グループのタイプを指定します。 以下の値がサポートされています。
      値:
      • user group
        (デフォルト)
        ユーザが作成したグループ
      • site
        物理サイトを表す、ユーザが作成したグループ
    たとえば、以下の XML を提供します。
    <GroupTree path="/All Groups"> <Group name="USA" desc="Group to represent the entire United States" inherit="true" type="user group"/> </GroupTree>
  7. メソッドを実行します。
    新しいグループ「USA」が、グループ ツリーのデフォルトの[すべてのグループ]グループの下に作成されます。
  8. 前述の手順を繰り返して、サイト グループを作成します。 サイト グループに以下の XML を提供します。
    <Group name="USA-Site" desc="Site group to represent the entire United States" inherit="true" type="site group" location="North America"/>
  9. 必要な数のグループとサイト グループを作成するまで、上記の手順を繰り返します。
  10. 同様の手順を使って、サブグループを作成します。 [Body]テキスト セクション内に、以下の XML を追加します。
    <GroupTree path="/All Groups/USA"> <Group name="Raleigh" desc="This is the group for managed items in Raleigh, NC" inherit="true" type="user group"/> </GroupTree>
  11. メソッドを実行します。
    この例では、新しいグループ「Raleigh」が、[All Groups\USA]グループのサブグループとして追加されます。
カスタム テナント内のグループの作成
カスタム テナント定義内でグループを作成する手順は、デフォルト テナントでグループを作成する手順と、わずかに異なります。
前の手順で取得した、グループ ID またはグループ パスを、パラメータとして提供します。 ただし、グループは「/
/All Groups/Tenants/
」パスに作成されます。
デフォルト以外のテナントにグループを追加する方法の例を以下に示します。 ユーザ インターフェースで、結果は以下のイメージのように見えます。
以下の手順に従います。
  1. NetOps Portal
    サーバへ接続されている REST クライアントをセットアップします。
  2. REST クライアントで URL に以下の形式を使用します。
    http://
    PC_host
    :8181/pc/center/webservice/groups/false/false
  3. 「HTTP」メソッド
    POST
    を選択します。
  4. NetOps Portal
    へのグローバル管理者アクセス権があるユーザ アカウントのリクエスト ヘッダに、有効なユーザ名とパスワードを指定します。
  5. Body Content-type
    として、
    application/XML
    を選択します。
  6. [Body]テキスト セクション内に次の XML を追加して、値を新しいグループに使用する値に置き換えます。
    <GroupTree path="/All Groups/Tenants/MyCustomTenant/Groups"> <Group name="North Carolina" desc="NC in the Southeast Region" inherit="true" type="user group"/> </GroupTree>
  7. メソッドを実行します。
    新しいグループ「North Carolina」がカスタム テナント「MyCustomTenant」の下に作成されます。 グローバル管理者およびカスタム テナントの管理者のみが、このグループを管理できます。また、MyCustomTenant ユーザのみがこのグループを参照できます。
グループへのアイテムの追加
個々の管理対象アイテムをグループに追加するには、グループ Web サービスを使用します。 各アイテムにはアイテム ID が必要です。
最初に、デバイス Web サービスを使用して、データベース内の管理対象アイテムおよびそれらの ID のリストを取得します。 get id names メソッドは、他のメソッドでデバイスを識別する