今回はOmnissa Intelligenceのカスタムコネクタを使用してRedmineと連携し、Workspace ONE UEM上の情報をトリガーにRedmineにチケットを起票するところまでを自動化してみたいと思います。
大まかな流れは以下の通りです。
1.カスタムコネクタの作成
2.カスタムの自動化アクションを作成
3.カスタムコネクタを使用したワークフローの作成
4.動作確認
1.カスタムコネクタの作成
Intelligenceの管理コンソールのメニューから「統合」をクリックします。
左側のメニューから「ワークフローコネクタ」をクリックします。
【補足】
デフォルトではビルトインのUEMコネクタやIntelligenceコネクタしかありませんが、カスタムコネクタでは任意のシステムと連携するためのコネクタを自作することができます。
「カスタムコネクタ」タブをクリック後、以下を設定して「設定」をクリックします。
-名前:任意の名前
-Base URL:連携先システムのURL
-Auth Type:認証方法を選択(今回はAPIのクエリ内にAPIキーがあり、認証が不要なシステムのため”No Authentication”)
カスタムコネクタが作成されました。コネクタを作成するだけであれば大した作業ではありませんが、この時点ではアクションが何も存在しないためコネクタができたというだけですので、カスタムのアクションを自分で作成してインポートしてあげる必要があります。
次章でカスタムのアクションを作成します。
2.カスタムの自動化アクションを作成
カスタムコネクタを利用するにあたっての唯一にして最大の山場が自動化アクションの作成です。ここでは例として「Redmineにチケットを起票する」という自動化アクションを作成してみます。
Postmanを起動し、+マーク⇒「Blank Collection」をクリックします。
まずはリクエストの名前を設定し、その他連携先のサービスのAPI実行に必要なパラメータをすべて設定します。
例として、今回RedmineのAPI実行に必要になる設定は以下の通りでしたが、この設定は連携先のサービスごとに異なるため、初めて設定する際は色々試行錯誤が必要になるかもしれません。
-Request type:POST
-URL:https://RedmineのFQDN/issues.json?key=[Redmine側のAPIキー]
「Headers」タブで以下を設定します。
-KEY:Content-Type
-VALUE:application/json
続いて、「Body」タブで以下を設定します。
-Rowにチェック
-データとして以下を設定(Redmineに対してAPIで作成するチケットの中身の設定)
当然ですが、各種idや値などは設定したい内容に応じて異なります。
-----------------
{
"issue": {
"project_id": 1,
"subject": "Created by Postman",
"tracker_id": 3,
"status_id": 1,
"description": ""
}
}
-----------------
すべての設定が整ったら、いざ「Send」をクリックします。
まずは、「Status」でエラーコードが返ってきていないことを確認し、「Body」タブでレスポンスの中身も確認しておきます。今回はBodyに実行結果の内容が表示されているので、ここからも成功していることがわかります。
リクエストが成功したら、右上の「Save Reponse」をクリックします。
【補足】
レスポンスを保存しておかないと、Intelligenceでの設定時にエラーとなるため、必ず実行後は保存しておきます。
作成した「Collection」をエクスポートするため、対象のCollectionの三点マークをクリック後、「Export」をクリックします
【補足】
直前に保存したのは「Request」で、いくつかのRequestをひとまとめにしたものが「Collection」です。Exportは「Collection」に対して実行します。
デフォルト(Collection v2.1)のまま「Export」をクリックします。
エクスポートした後は、JSONファイルを少し編集します。
テキストファイルでPostmanからエクスポートしたJSONファイルを開き、Request名に当たる箇所の下に1行追加し、以下を入力します。
-------------
“id” : “一意の値”
-------------
【補足】
idを追加しない状態でIntelligenceにアップロードするとエラーになります。
また、今回は一つのCollection内にリクエストが1つしか存在しないため以下赤枠の箇所にidを追加しただけですが、もしコレクション内に複数のリクエストを含めている場合は、1リクエストごとに1つずつidを追加してあげる必要があります。
次にJSONファイルをアップロードします。Intelligenceの管理コンソールに戻り、先ほど作成したカスタムコネクタの詳細画面から「アクション」タブをクリック後、「お使いのコンピュータから選択します。」のリンクをクリック後、JSONファイルをアップロードします。
先ほどPostmanでエクスポートしたCollectionに含まれるRequestがアクションとして追加されます。
【補足】
「アクション名」に表示される名前はPostmanにて「Request」につけた名前です。
「Collection」は「Request」をひとまとめにしたものと前述しました。
今回はRequestを一つしか作成してないので、アクションも一つしか出来上がりませんが、Collectionに複数のRequestを含めるとアクションも複数出来上がるイメージです。
テスト実行ができるため、追加後は念のため動きを見ておきます。
アクションの「︙」をクリック後、「テスト」をクリックします。
Intelligenceからの実行だとわかるようにSubjectを変更して置き、「テスト」をクリックします。すると「テスト結果を表示」にアクションの実行結果が表示されます。ここでエラーコードが返ってこなければOKです。
Redmine管理コンソールも確認し、Intelligenceに入力した内容でチケットが作成されていることを確認します。
ここまでできれば、あとはIntelligenceのワークフロー機能で、何らかの情報をトリガーにRedmineのチケットを作成することができます。
3.カスタムコネクタを使用したワークフローの作成
山場は越えたので、Custom Connectorを使用したワークフローを作成します。
今回はシナリオとして、「企業情報ワイプを実行したものの、実行が確認されず長期間経過してしまっているデバイスを検出し、デバイスに紐付くユーザーに状況を確認する」というアクションを促すチケットを作成するワークフローを作成してみます。
WS1 UEMでは企業情報ワイプを実行すると、一度デバイスのステータスは「企業情報ワイプ実行待機中」という状態になります。その後デバイス側で企業情報ワイプが実行されたことが管理コンソールに報告されると「加入解除済み」という状態になります。
なので、「企業情報ワイプ実行待機中」のまま長期間経過している状態デバイスは、実際にワイプが実行されたのか(実行されたものの管理コンソールにその状態が連携されていないだけなのか)、実行されないままオフラインになったままなのかが判別できない状態のため、デバイスの状態を確認したほうがよい状況と言えます。
Intelligenceの管理コンソールを開き、「ワークスペース」>「Freestyle」をクリック後、「ワークフローを追加」をクリックします。
データソースは「デバイスデータ」を選択し、トリガールールは以下のように設定します。
-デバイスタイプ|含む|Desktop
-加入状態|含む|EnterpriseWipePending
-最終検出|範囲外|過去28日間
アクションでRedmineのチケット作成を追加して、チケットのSubjectやDescriptionにそれっぽい文言を設定します。
ここでは変数が利用できるため、デバイスフレンドリ名や紐付くユーザー名などを変数で設定しておき、対象が分かりやすいようにしておきます。
最後にワークフローを有効化して。「保存」をクリックします。
「保存して有効化」をクリックします。
4.動作確認
実際に28日待つと時間が掛かってしまうので、今回はたまたま28日以上オフラインのデバイスがあったので、このデバイスに対して企業情報ワイプを実行して疑似的に状況を再現します。
企業情報ワイプを実行後、しばらく待つとワークフローのアクティビティに実行された履歴が表示されます。これは、先ほど設定したトリガールールに合致するデバイスが現れたため、ルールに従いアクションが実行されたためです。
Redmineを見るとIntelligenceのワークフローで設定した内容で自動的にチケットが作成されています。緑枠内は変数指定をしたため、該当するデバイスのフレンドリ名とそのデバイスが紐付くユーザー名が表示されています。
今回はお試しとして疑似的なシナリオを作成してみましたが、Intelligenceのワークフローのトリガーではデバイスの様々な情報をトリガーとすることができるので、柔軟にワークフローを組むことで日々の手動運用の一部を自動化することができるかもしれません。
コメント
コメントを投稿