スクラムなどを採用してアジャイルな仕事の進め方をしているチームも多くなってきているのではないでしょうか。
「スクラム」=「アジャイル」,「アジャイル」=「開発」
∴「スクラム」=「開発」?
「スクラムは、開発プロジェクトで使うもの」と考えている方も多いかもしれませんが、個人的に「スクラム」は「システム運用」と相性が良いと考えています。
「デイリースクラム(朝会)」で、前日までの認識合わせと今日実施する予定をチームで共有し、突発的なインシデントもスプリント(週間予定)のバッファ等で対応できます。運用改善もバックログ(実行タスク)で管理可能です。
開発では「定例タスク」というものが少ないかもしれませんが、システム運用では、しばしば定例化されたタスクが発生します。今回は、「Jira」に定例タスクを自動的に登録する仕組みを考えてみます。
そもそも「Jira」とは?
「Jira」については、以前のブログでご紹介していますので、そちらをご参考にしてください。
自動化のアーキテクチャ
「Jira」のタスクを「PowerShell」で生成する方法を以前のブログでご紹介しました。
「JiraPS」を使ってみましょう。オンプレミスのサーバやPC等でタスク実行することも可能ですが、今回は「Azure Automation Runbook」というものを採用してみます。
Azure Automationとは?
Azure Automation は、Azure 環境だけでなくオンプレミスも含めてクラウドベースで管理の自動化をサポートするツールです。プロセスの自動化、構成管理、更新管理、共有機能などを提供しています。
Azure Automation Runbook
Azure Automation のプロセスの自動化機能として「Runbook」というもがあります。PowerShell や Python スクリプトなどを実行することが可能です。
Azure Automation の価格
今のところ Azure Automation は、基本料金などのベースとなる費用はなく、従量課金です。プロセスの自動化は、「ジョブ実行時間」で課金されますが、
1 か月あたり 500 分間は、無料で利用できる枠が用意されています!
定例タスクの自動生成手順
それでは、自動生成させる手順を見ていきましょう。
Azute Automation アカウント の作成
まずは、Automation アカウント を作成します。Azure Portal でアカウントを作成するリソースグループに移動し、[ +作成 ] > [ リソースの作成 ] > [ 検索: Automation ] を入力し、候補表示された「Automation」をクリックします。
①「作成」、②アカウント名や地域などを調整、③「確認および作成」をクリックします。
Automation へのモジュール追加
「JiraPS」を利用するため、Automation アカウントにモジュールを追加します。
Automation アカウントへ移動し、左ペイン①「モジュール」、②「モジュールの追加」をクリックします。
①「ギャラリーで参照」②「ギャラリーで参照するには、ここをクリックします」をクリックします。
①検索ボックスに「JiraPS」と入力し、②表示された「JiraPS」をクリック。③モジュール内容を確認して「選択」をクリックします。
最後に「インポート」をクリックして「JiraPS」モジュールを追加します。
資格情報の埋め込み
「PowerShell」などに資格情報をそのまま記載するのは、セキュリティ的に好ましくありません。Automation アカウントには、資格情報を格納する機能が備わっていますので、そちらを使ってみましょう。
左ペイン①「資格情報」、②「資格情報の追加」をクリックします。
Jira ログイン用トークンを①資格情報として入力し、②「作成」をクリックします。
Runbookの作成
続いて、Runbook を作成します。Automation アカウント画面の左ペイン①「Runbook」から②「Runbookの作成」をクリックします。
①「Runbookの名前、種類、バージョンなど」を入力し、②「作成」をクリックします。
①実行するスクリプトを記入し、②「保存」をクリックします。
最後に①「公開」、②「はい」をクリックします。
PowerShell からの Automation 認証情報読み込み
先ほど Automation アカウントで認証情報を登録しましたが、Runbook の PowerShell からの読み込みは、以下のようなスクリプトで可能です。
$JiraToken = Get-AutomationPSCredential -Name 'JiraToken'
$cred = New-Object System.Management.Automation.PSCredential($JiraToken.UserName,$JiraToken.Password)
Cmdlet Get-AutomationPSCredential
を利用して、登録した ‘JiraToken’ を読み込みます。UseName
と Password
属性でそれぞれの値を取得可能です。 Password は、SecureString 型で格納されています。
定期実行スケジュールの作成
Runbook の定期実行スケジュールを作成します。作成した Runbook を開き、「スケジュールのリンク」をクリックします。
①「スケジュールを Runbook にリンクします」、②「スケジュールの追加」、③新しいスケジュールとして「名前などを記入」し、④「作成」をクリック。⑤最後に「OK」をクリックします。
まとめ
今回は、Jira に定期タスクを Azure Automation Runbook を利用して自動化する方法をご紹介しました。本記事が皆さんの運用管理の一助となりましたら幸いです。
PNCでは「サーバ設計・構築サービス」として、メーカーやベンダーに依存しない中立な立場でご支援します。ネットワーク/サーバインフラに関することならどのようなことでもご相談ください。