Ansibleが管理できる対象は幅広いですが、Windowsもその例外ではありません。以下では、Ansibleを用いたWindowsの構成管理とその特徴について、その概要をご説明します。
AnsibleはWindowsに対してなにができるか
はじめに、Ansibleを用いてWindows (Windows PCおよびWindows Server) に対して行える処理について解説します。以下の処理は、AnsibleネイティブのWindowsサポートを用いて行える内容です。
- Windowsマシンからの構成情報取得
- アプリケーションのインストールおよびアンインストール
- Windows機能を有効、または無効にする
- Windowsサービスの開始、停止および管理
- ユーザーやグループの管理
- Chocolateyを介したWindowsパッケージの管理
- Windows Updateの管理とインストール
- リモートサイトからのファイル取得
- 作成したPowerShellスクリプトをプッシュして実行
このように、以前はActive Directoryとエージェント型の構成管理ツールがなければ行えなかった処理が、エージェントレス型のAnsibleを用いて行えるようになっています(なお、AnsibleからActive Directoryおよび、Azure ADの操作も可能です)。
必要なコンポーネントについて理解する
WindowsはSSH経由の管理が想定されていないため、Windowsのリモート管理機能である「WinRM (Windows Remote Management)」を用いて、AnsibleからWindowsに接続、管理を行います。必要なコンポーネントは以下の4つとなります。
(1) WinRM
SOAP (HTTPまたはHTTPS) ベースのWS-Managementプロトコルを経由して、ターゲットノードに接続します。
(2) PowerShell
高度な管理や操作をコマンドラインから行える、Windowsに標準で付属するツールです。
(3) Windows Management Instrumentation
コマンドラインやスクリプト言語から、Windowsの設定情報やコンピュータの状態などにアクセスするための標準仕様です。
(4) pywinrm
WinRMサービスに接続するためのPythonのクライアントライブラリです。これを利用することで、ターゲットノードに対して、WMIデータの取得やPowerShellスクリプトの実行、バッチ処理が可能となります。
Windows側の準備
はじめに、管理されるWindows PCまたはWindows Server側は、以下の準備を行っておく必要があります。
PowerShell 3.0以上(および対応する.NET Framework 4.0以上)がインストールされている WinRMでコントロールノードからの接続が許可されている PowerShellのリモート実行が許可されている 管理者グループに所属するAnsible接続用ユーザーが登録されている
上記に対応し、Ansibleで管理可能なOSは以下となります (2022/5現在)。
- サーバーOS
- Windows Server 2008
- Windows Server 2008 R2
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
- Windows Server 2019
- クライアントOS
なお、Windows 11はAnsible公式ドキュメントでは管理可能なOSとして記載されていませんのでご注意ください (2022年5月現在)。
Windowsホストの自動化例
以下では、Windowsホストに対する構成管理を自動化した例について紹介します。
シーメンス
ドイツの大手電機メーカー、シーメンスはWindowsベースの環境でしたが、LinuxベースのAnsibleを用いて以下の管理ならびに自動化を実現しました。 主にWindows PCならびにWindows Serverに対するPKI環境(デジタル証明書、通信の暗号化、スマートカードなど)の最適化および自動化
引用元はこちら。
Ensono
アメリカ・イリノイ州のITマネージドサービス企業であるEnsonoは、Ansible Tower (当時) を導入前に、管理するサーバーに対してWindows Server 2016を実装するのに8週間を要していました。Ansible Tower導入後は、Windows Server 2019プレリリース作業の90%を2日で完了させました。
引用元はこちら。
Agile Defense
アメリカ政府機関に対してITサービスを提供する、アメリカ・バージニア州のAgile Defenseは、自社ソリューション「Compliance as a Service (CPaaS) 」の基盤としてAnsibleを採用し、構成管理機能を利用した脆弱性監査を提供しています。監査対象には、Red Hatプラットフォーム、VMwareハイパーバイザーなどとともに、Windowsも監査対象としています。このサービスにより、ある顧客が監査に費やす時間を98%削減しました。
引用元はこちら。
この他、エージェントレスであるAnsibleの特性を生かして、WSUS (Windows Server Update Services) に代わってWindows Updateの適用を行う例などもあります。
ネットワーク自動化サービス「Automation Coordinator」
お客様ごとの最適な業務プロセスコンサルティングを含めたAnsibleによる自動化の導入(実際の運用)、ハイスキルなエンジニアによる並走型支援、クライアントワーク、チケットサポート、最終的にはお客様が自動化を自律して運用するためのスキル習得トレーニングまでをパッケージ化して提供するネットワーク運用の自動化支援サービスです。