We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Toru Inoue
ServiceNow Employee

※本記事は、ServiceNowのパートナー様より寄稿いただいたものをServiceNow社員が代理で投稿しています

 

===

皆さん、こんにちは。富士通ソフトウェアテクノロジーズ 運用管理基盤 チームです。

 

当部門ではお客様ITシステムのシステム運用管理・改善のコンサル・設計・導入を中心にビジネスを展開しております。弊社はServiceNowパートナー(Eliteパートナー)で、ServiceNow認定資格保持者が多数在籍しています。

昨年度弊社は、Now at Work Tokyo 出展、ServiceNow Japan Hackathon参加やServiceNow US本社訪問など商談活動以外も充実した活動を行う事が出来ました。今年度も色々発信していければと考えています。

 

ServiceNowはインシデント管理などのITSM分野への機能提供にとどまらず、ITシステムの運用自動化を実現可能なIT Operation Management(ITOM)を備えています。昨今ServiceNow社が機能を拡充しているFlow Designer、IntegrationHubを使用することで、様々なクラウドシステムとの連携処理をコードレス、ないしはローコードで実現することができます。また、MID Serverと呼ばれる中継サーバーとの連携で、オンプレミス上のWindows SeverやLinux Serverの運用操作を自動化することも可能です。

 

本記事ではオンプレ環境の運用自動化と正常性の監視を行う事を目的に「オンプレミス サーバーのメンテンス処理を自動実行し、処理の完了をクラウド型チャットツールで通知する」というハイブリッドな構成の一例をご説明します。具体的には「Linuxサーバー上で処理をスケジュール実行し、完了通知をSlackに書き込む」というシンプルな構成を題材にServiceNow Flow Designerでフローを作成します。

 

構成概要

find_real_file.png

 

作業の流れ

  1. 事前準備
  2. Linuxのクレデンシャルの作成
  3. 自動実行処理の設定
  4. メッセージ書き込み処理の設定

 

1.事前準備

事前準備として以下を行っておいてください。

IntegrationHub Starter/Professional

プラグインの有効化

IntegrationHub StarterとProfessionalプラグインの有効化が必要です。

MID Server(for Linux)の導入

Linuxサーバーの運用操作を自動化するために、MID ServerをLinux OS上で構成します。(MID Serverは対象のLinuxサーバーへSSHで自動化処理を実行します。)

Slack側でSlack Appの設定

ServiceNowからSlackへメッセージ

書き込みができるようSlack Appを構成します。(Slack App 側でOAuth認証ないしは、

Webhookの設定を行う必要があります。)

 

2.Linuxのクレデンシャルの作成

対象のLinux ServerへのSSH接続に使用するクレデンシャルを作成します。

find_real_file.png

上記画像は、SSHのパスワード認証構成の設定例です。

・CredentialのタイプはSSH Credentials

・Linux ServerのSSH接続ユーザー・パスワードを指定

・Credential Aliasも作成(後程Flow Designerで利用します)

 

3. 自動実行処理の設定

Flow DesignerでActionを作成し、Linuxサーバーで実行する処理を設定します。

3-1.Flow Designerで新規にActionを作成します。左ペインの₊ボタン(Add a new step)でStepを追加します。

find_real_file.png

 

Stepの選択画面でSSHを選択します。

find_real_file.png

 

3-2.SSH Stepの接続情報と操作コマンドを設定します。

・Connection Aliasには先ほど作成したSSHクレデンシャルを指定し、Hostにメンテナンス対象サーバー名を入力します。

find_real_file.png

 

・リモート操作コマンドと実行ディレクトリを入力します。

find_real_file.png

 

ここでは自動実行する処理の例として「Linux-SV02サーバー上の/home/maintuserディレクトリでsystemctlを実行し、サービス一覧を表示する」としています。

 

補足事項)

コマンド実行時の標準出力文字列は、Outputパラメータに格納されます。また、Error Messageパラメータにエラー出力が格納されます。それら文字列を加工してServiceNow上のテーブルへ格納、Slackへ書き込む等の処理の追加も可能です

find_real_file.png

 

3-3. テスト実行と確認

テスト実行はAction設定画面の上部のTestアイコンから行います。

find_real_file.png

 

テスト結果確認画面で、接続情報や入力内容、出力結果の確認ができます。

find_real_file.png

 

以上で、Linuxサーバーへの接続情報と実処理の設定が出来ました。以降でこのActionをフローに取り込み、Slackへ書き込みを行う設定の流れを記載します。

 

4. メッセージ書き込み処理の設定

Flow Designerで新たにFlowを作成し、先ほど作成したActionを取り込み、Slackへメッセージを書き込む設定を行います。Slackへの書き込みは、構成が簡単なWebhook方式での書き込みとしました。厳密な権限・セキュリティ運用においては、OAuth方式の構成がより適切と思われます。

4-1.Flow Designerで新規にフローを作成し、Triggerでこのフローの実行タイミングを設定します。

find_real_file.png

上記画像では、毎日12時に実行するよう設定しています。

 

4-2.先ほど作成したActionをフローに追加します。

find_real_file.png

 

補足事項)

・SystemMaitenanceはアプリケーション名です。

・LinuxMaintAction001は先ほど作成したAction名です。

 

4-3.Slackへ通知を行うActionをフローに追加します。

find_real_file.png

 

4-4.SlackのWebhookのURLやメッセージを入力します。

find_real_file.png

 

設定は以上です。フロー全体像は以下となります。

テスト実行して結果を確認してみます。フロー画面上部のTestボタンでテストを実行します。

find_real_file.png

 

・テスト結果で表示されるOutputパラメータで、Linuxのコマンド実行結果が確認できます。

(Linux上のサービス一覧が表示されています)

find_real_file.png

 

・Slackへのメッセージ書き込みも無事に実施されています。

(Slackのメッセージ画面)

find_real_file.png

 

・ServiceNowテスト表示からもSlackへ正常に書き込みが出来たことがわかります。

(レスポンスコード200)

find_real_file.png

 

おわりに

いかがでしたでしょうか。ServiceNowを用いてオンプレミスサーバ上の処理を自動化し、クラウドサービスと連携させるフロー作成が、さほど難しくないことを理解いただけたかと思います。オンプレミスを対象としたメンテナンス処理をServiceNowで行うかどうかは、ケースバイケースですがServiceNowで管理している情報(構成管理等)との連携が想定されるケースなどで、有用な構成パターンの1つとなります。

 

また、本内容を応用することで、弊社では以下のようなシステム運用の自動化を実現した実績があり、
多数のテンプレート、部品を保有しています。
※もしご興味がある場合は、ご遠慮なくお問い合わせください。

 

・構成管理情報上のサーバー一覧に対して処理を実施

・Linuxのコマンド出力結果を加工してServiceNowのテーブルにレコードを格納

・メンテナンス処理結果に応じて分岐処理を実行

・ServicePortal UIからフローを呼び出してオンデマンド実行

・監視ツールやイベント管理と統合してイベントドリブンで自動実行

 

最後まで、お付き合いいただき、ありがとうございました。

 

株式会社富士通ソフトウェアテクノロジーズ

https://www.fujitsu.com/jp/group/fst/