APC Automation blog

株式会社エーピーコミュニケーションズの自動化ブログです

AnsibleでWindowsを自動化する

AnsibleでWindowsを自動化する

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の操作も可能です)。

必要なコンポーネントについて理解する

WinRMの構成概要
(出典: Ansible実践ガイド第3版 著: 北山晋吾、佐藤学、塚本正隆、畠中幸司、横地晃[インプレス刊] P224 Figure 5-3 WinRMの構成概要)

WindowsSSH経由の管理が想定されていないため、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側の準備

はじめに、管理されるWindows PCまたはWindows Server側は、以下の準備を行っておく必要があります。

PowerShell 3.0以上(および対応する.NET Framework 4.0以上)がインストールされている WinRMでコントロールノードからの接続が許可されている PowerShellのリモート実行が許可されている 管理者グループに所属するAnsible接続用ユーザーが登録されている

上記に対応し、Ansibleで管理可能なOSは以下となります (2022/5現在)。

なお、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による自動化の導入(実際の運用)、ハイスキルなエンジニアによる並走型支援、クライアントワーク、チケットサポート、最終的にはお客様が自動化を自律して運用するためのスキル習得トレーニングまでをパッケージ化して提供するネットワーク運用の自動化支援サービスです。

APC-ACT
ACT(Automation Colabo Team)は株式会社エーピーコミュニケーションズ(APC)の自動化に特化したチームです。現在は特にネットワーク自動化に重点を置いています。
当ブログは、執行役員 名田と、マーケ担当 嶋津が主に情報発信を行っています。