今回は Azure Automation を活用した更新管理機能を紹介します。Windows や Linux のサーバーを多数運用していると必ず考えなければいけないのが更新プログラムの適用です。数がごく少数であれば手動で管理するのもやぶさかでは無いですが、膨大な数になってくると各インスタンスの更新状況を把握するのは困難になってきます。
そこで今回は Azure Automation を活用して、各インスタンスの更新プログラムの適用状態確認と適用スケジューリングを実施する方法を紹介します。
Azure Update Management とは
Azure Update Management は Azure で提供される更新管理ソリューションです。Azure ポータルから監視対象インスタンスの更新プログラム適用状況の確認と適用スケジュールの設定を行えます。基本利用は無料で、裏側で利用する Log Analytics へのログ入流量で課金が発生します。
基本的な動作の流れを説明します。まずは監視したい対象のインスタンスへ Log Analytics のエージェントをインストールする必要があります。エージェントをインストールすればインスタンスが配置されている場所は Azure に限らず、オンプレでも他のクラウドサービスでも構いません。監視対象インスタンスと Log Analytics ワークスペースを接続したら、更新状況の確認と更新スケジュールの設定を行えるようになります。
注意が必要なのは、Azure Update Management から行えるのは更新スケジュールのキックのみというところです。更新データのダウンロードを配布する役割は担いませんので、そういったことを実現したい場合は従来通り WSUS を導入する必要があります。
Update Management の基本情報
サポート OS
Update Management で管理できる OS は現在次のとおりです。残念ながらクライアント OS についてはサポートされません。
- Windows Server 2019 (Datacenter、Datacenter Core、Standard)
- Windows Server 2016 (Datacenter、Datacenter Core、Standard)
- Windows Server 2012 R2 (Datacenter、Standard)
- Windows Server 2012
- Windows Server 2008 R2 (RTM および SP1 Standard)
- CentOS 6 (x86/x64) および 7 (x64)
- Red Hat Enterprise 6 (x86/x64) および 7 (x64)
- SUSE Linux Enterprise Server 11 (x86/x64) および 12 (x64)
- Ubuntu 14.04 LTS、16.04 LTS、18.04 (x86/x64)
Azure の Update Management ソリューション – サポートされているクライアントの種類
ネットワーク要件
Log Analytics などを利用するため、監視対象のクライアントは次のアクセス先に接続できる必要があります。
- *.ods.opinsights.azure.com
- *.oms.opinsights.azure.com
- *.blob.core.windows.net
- *.azure-automation.net
Azure の Update Management ソリューション – ネットワークの計画
Update Management の展開方法
Azure Automation アカウントの展開
Azure ポータルから[リソースの作成]>[管理ツール]>[オートメーション]を選択して、Azure Automation を作成していきます。
展開ブレードでは各項目に適切な値を入力していきます。サブスクリプションやリソースグループは展開したい物を選択してください。
[Azure 実行アカウントの作成]は[はい]を選択します。この時 Azure AD ロールと Azure サブスクリプションロールで必要な権限がないと作成ができません。基本は Azure AD テナントの[グローバル管理者]ロールとサブスクリプションの[所有者]ロールがあれば万事解決ですが、もう少し権限が絞られているケースもあると思います。
以下リンクを参考にして欲しいですが、Azure AD テナントの[アプリケーション管理者]ロール、サブスクリプションには[共同作成者]ロールと[ユーザーアクセス管理者]ロールが必要となっています。作成完了すると、サブスクリプションのアクセス権限に Azure Automation の実行アカウントがあるのを確認できます。
Azure Automation の実行アカウントを管理する – 実行アカウントを構成するためのアクセス許可
Update Management の展開
作成した Azure Automation アカウントを開きます。左メニューの[更新プログラムの管理]を選択します。
更新プログラム管理ソリューションを展開していきます。このサービスのログを保存するために利用する Log Analytics ワークスペースを作る必要があります。新規作成するか、既存のワークスペースを選択して[有効化]をクリックします。
ワークスペースと接続されると、先ほどと同様に[更新プログラムの管理]から更新状況を確認できるようになります。
監視対象インスタンスの接続
作成したワークスペースに監視したいインスタンスを接続します。Azure VM であればポータルから操作する方法がいくつかあります。1つ目は[更新プログラムの管理]画面上部のメニューにある[Azure VM の追加]から行います。もう一つは仮想マシンの一覧画面で接続したいインスタンスを選択してから、[サービス]>[更新の管理]をクリックします。
監視対象としたいインスタンスを選択して有効化していきます。
Azure 以外の場所にあるインスタンスを監視したい場合は、インスタンスに MAM エージェントをインストールし、Log Aanlytics から取得した接続情報を入力します。エージェントのインストーラーと接続情報は Log Analytics の [詳細設定]から確認できます。
監視対象インスタンスを接続すると、自動的にインスタンスの数や名前が一覧で確認できるようになります。
更新スケジュールの設定
[更新プログラムの管理]画面から、上部メニューの[更新プログラムの展開のスケジュール]をクリックします。
[新しい更新プログラムの展開]ブレードで設定情報を入力していきます。OS 種類ごとにスケジュールを設定する必要があるので、[オペレーティング システム]から管理対象インスタンスに合う物を選択します。
スケジュール対象となるインスタンスを設定します。更新グループか、インスタンスを直接選択して設定します。
更新適用するプログラム種類を選択します。
除外したい KB があれば ID を指定します。ただし、最新の Windows OS は累積更新プログラムなのであまり気にする必要はないかもしてません。
更新適用をするスケジュールを設定します。実施も一度きりか定期的かを選択します。
最後に事前/事後スクリプトの設定や、メンテナンスウィンドウと適用後の再起動が必要な場合の挙動を指定して保存します。スクリプトは Azure Automation 内にスクリプトを配置します。[再起動のオプション]では更新後に常に再起動させたり、更新の適用のみに留めて手動で再起動するように指定ができます。
更新スケジュールが実行されるようになると、未適用のプログラム内容や実施履歴を確認できるようになります。
Update Management 使い所
Azure でサーバーの更新管理を行いたいケースなら簡単に始められるのでおすすめです。Azure 以外のインスタンスもエージェントをインストールすれば監視可能なので、Azure を監視基盤として利用するようなこともできるかもしれません。
既に SCCM + WSUS など本格的な運用監視基盤があるのであれば無理して移行する必要はないかもしれません。Update Management は説明したとおり更新適用タイミングをキックする機能なので、更新プログラムのダウンロードトラフィックを抑制するために WSUS を併用することも可能です。
コメント