ServiceNow CLI を試してみよう
ServiceNow の Rome リリースにて ServiceNow CLI と呼ばれる、ServiceNow のインスタンスに対してコマンドラインツールからアクセスするインターフェースが公開されました。ServiceNow CLI を利用することで、Windows、macOS、Linux のコマンドラインツールから ServiceNow のレコードに対して CRUD 操作を実現できるようになるのでシステム連携の幅が広がりますね。早速、ServiceNow CLI を試してみました。
ServiceNow CLI はグローバルの ServiceNow Store に公開されています。日本の ServiceNow Store ではないのでご注意を。Windows、macOS、Linux に対応した ServiceNow CLI はこちらから入手可能で、インストーラーの指示に従うことですぐに導入可能です。また、ServiceNow CLI からアクセスしたいインスタンスには CLI Metadata プラグインの導入が必要なので、プラグインの導入をお忘れ無く。
ServiceNow CLI の導入が完了したら、ターミナルやコマンドプロンプトから"snc"とコマンドを実行します。正しく導入がされて、パスの設定も正しくされているとヘルプが表示されます。
ServiceNow CLI からインスタンスに接続するには Profile を作成し、インスタンスへの接続情報やデータのフォーマットを定義する必要があります。Profile の作成は以下のコマンドで行います。
$ snc configure profile set -p NoteDemo
-p NoteDemo は Profile の名前で省略することも可能で、省略すると Default の Profile として作成されます。Profile が正しく構成されると ServiceNow CLI を利用して Record の操作や Agent Client Collector の操作などを行えるようになります。
今回はレコード操作を試してみます。まずはインシデントテーブル(incident)に対して Query を投げてレコードを取得してみます。
$ snc record query -p NoteDemo
と実行すると、インタラクティブにテーブル名などの入力を求められるので値を入力していくと、結果を得ることができます。
Table: incident
Encoded query: active=true^short_descriptionSTARTSWITHemail
Fields: number,short_description,sys_class_name
Limit: 10
Offset: 0
Display value: false
✔ Request completed
{
"result": [
{
"number": "INC0009005",
"short_description": "Email server is down.",
"sys_class_name": "incident"
}
]
}
これらの情報を最初からパラメータにセットして実行することも可能です。
$ snc record query --table incident --query active=true^short_descriptionSTARTSWITHemail --fields number,short_description,sys_class_name --limit 10 -p NoteDemo
✔ Request completed
{
"result": [
{
"number": "INC0009005",
"short_description": "Email server is down.",
"sys_class_name": "incident"
}
]
}
レコードの作成も行う事が可能です。
$ snc record create --table incident --data "{'short_description': 'Incident Created from ServiceNow CLI', 'impact':'3'}" -p NoteDemo
✔ Request completed
{
"result": {
"action_status": "",
"actions_taken": "",
...
...
}
}
実際にインスタンスにアクセスしてみるとレコードが作成されている事を確認できます。
ServiceNow CLI も今後拡張されていく予定とのことなので Windows での PowerShell やバッチファイル、macOS、Linux でのシェルスクリプトを利用した ServiceNow 連携の可能性が広がりますね。是非とも試してみてください。
ServiceNow CLI のドキュメントにはその他多くの情報がありますので参照してみてください。https://docs.servicenow.com/bundle/rome-application-development/page/build/servicenow-cli/concept/servicenow-cli.html