LoginSignup
3
0

More than 1 year has passed since last update.

Exastro Playbook Collectionを使ってみた Windows 収集編

Last updated at Posted at 2021-09-27

はじめに

Exastro Playbook Collectionとは
システム構築で利用されるOSやMiddleware用のAnsible Playbook集です。
実機からパラメータを収集するPlaybookが含まれており、構築後の設定確認時などに活用できます。(Exastro Suiteサイト)

情報の収集及び設定を行うためのロールパッケージ「Windows Server 2019」から以下の収集用ロールを実行します。
更に今回は、WindowsServerから収集したパラメータ値をITAのパラメータシートに登録するところまでやってみたいと思います。

  • Windows Defender設定
  • ローカルグループ
  • IPv4の設定

作業環境

作業環境は以下の通りです。

ITAを操作するためのクライアントPC

  • Windows10
  • Google Chrome

ITAホストサーバ

  • Linux CentOS7.8
  • Exastro IT Automation1.8.1
  • Ansible 2.11.2

設定情報の収集を行う対象サーバ

  • Windows Server2019

image.png

今回紹介するシナリオ

今回実行する手順は以下の通りです。

 
準備作業
1. ロールパッケージのダウンロード
2. Playbookcollectionを使用するための準備
3. WinRMを有効にする

実行手順
1. ロールパッケージの登録
2. Movementの登録
3. Movementとロールパッケージの紐付け
4. ターゲットマシンの登録
5. オペレーションの登録
6. ターゲットマシンとMovementの紐付け
7. 収集データ出力先変更
8. 収集した値を登録するパラメータシートを作成
9. 収集項目管理の登録
10. 作業実行
11. 実行結果確認 

準備作業

1. ロールパッケージのダウンロード

Exastro Playbook Collectionサイトからロールパッケージをダウンロードします。
本記事では、以下のロールパッケージを使用していきます。
image.png

2. Playbookcollectionを使用するための準備

本手順はITAで設定収集を行う場合に一度だけ実行する必要があります。
① ITAホストサーバにsudo権限を付与したユーザでログインする
② 必要なツールをインストールする

sudo yum -y install git wget

③Playbook実行フォルダを作成しフォルダを移動する

mkdir ansible_work
cd ansible_work/

④ パラメータ生成共通部品ロールリストをダウンロードし、手順③で作成したフォルダに配置する

wget https://exastro-suite.github.io/playbook-collection-docs/requirements/prerequire_list.yml

⑤ ansible-galaxyコマンドでロールをダウンロードする

ansible-galaxy install -r prerequire_list.yml -p roles

⑥ 以下を参考にPlaybookとインベントリを作成する
Playbookの作成

prerequire.yml
---
- hosts: local
  become: yes
  roles:
    - setup_paragen

インベントリの作成
※AnsibleをPython2で動作させる場合、ansible_python_interpreterの定義は不要です。

[local]
localhost

[local:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_become_pass=<sudoパスワード>

⑦ Playbookを実行してパラメータ生成用共通部品をインストールする

ansible-playbook -c local -i inventory prerequire.yml

本作業の詳細については、以下の記事でより詳細に解説されています。

3. WinRMを有効にする

AnsibleをWindows Serverに接続するために、WinRMを有効にします。

① Powershellを管理者権限で起動する
作業対象サーバに入り、PowerShellを管理者権限で起動します。

② Powershellのバージョンを確認する

PS > $PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.17763.1007

※3.0以上のバージョンが必須です。
③ WinRMを設定する
確認事項は3点です。

PS > Enable-PSRemoting -Force

1 NetworkCategoryがprivateになっている

PS > Set-NetConnectionProfile -NetworkCategory Private
PS > Get-NetConnectionProfile

NetworkCategory  : Private

2 Basic=trueになっている

PS > winrm set winrm/config/service/auth '@{Basic="true"}'
PS > winrm get winrm/config/service/auth

Basic = true

3 AllowUnencrypted=trueになっている

PS > winrm set winrm/config/service '@{AllowUnencrypted="true"}'
PS > winrm get winrm/config/service

AllowUnencrypted = true

本作業の詳細については、以下の記事でより詳細に解説されています。

実行手順に入る前に

ITAにロールを登録する前に、今回収集するロールを確認していきましょう。

WindowsDefender設定

本ロールはWindows Server 2019に関するWindowsDefender設定についての情報の取得を行います。
Windows Defenderをインストールしていない場合は、本ロール実行時にエラーとなるため実行しないでください。

生成したパラメータの出力例

構成は以下の通りです。

 - playbook/
    └── _parameters/
            └── 管理対象マシンホスト名 or IPアドレス/
                 └── OS/  # OS設定ロール向け専用のフォルダ
                        WIN_Defender.yml  # パラメータ

パラメータとして出力される情報は以下となります。

//OS/WIN_Defender.yml
VAR_WIN_Defender:
  DisableEnhancedNotifications: 0
  DisableRealtimeMonitoring: false
  EnableControlledFolderAccess: 0
  FilesBlockedNotificationDisabled: 0
  FireWallDomainProfileNotice: 1
  FireWallPublicProfileNotice: 1
  FireWallStandardProfileNotice: 1
  MAPSReporting: 2
  NoActionNotificationDisabled: 0
  SmartScreenEnabled: 'Off'
  SubmitSamplesConsent: 1
  SummaryNotificationDisabled: 0

詳細については、以下の記事でより詳細に解説されています。
Windows Defender設定 詳細

ローカルグループ

本ロールは、Windows Server 2019に関するローカルグループについての情報の取得を行います。

生成したパラメータの出力例
構成は以下の通りです。

 - playbook/
    └── _parameters/
            └── 管理対象マシンホスト名 or IPアドレス/
                 └── OS/  # OS設定ロール向け専用のフォルダ
                        WIN_Group.yml  # パラメータ

パラメータとして出力される情報は以下となります。

//OS/WIN_Group.yml
VAR_WIN_Group:
- Action: present
  Domain: TESTDOMAIN
  Name: Access Control Assistance Operators
- Action: present
  Domain: TESTDOMAIN
  Name: Administrators
  user:
  - Administrator
  - ansible
・・・<以下省略>

詳細については、以下の記事でより詳細に解説されています。
ローカルグループ 詳細

IPv4の設定

本ロールは、Windows Server 2019に関するIPv4の設定についての情報の取得を行います。

生成したパラメータの出力例
構成は以下の通りです。

  - playbook/
    └── _parameters/
            └── 管理対象マシンホスト名 or IPアドレス/
                 └── OS/  # OS設定ロール向け専用のフォルダ
                        WIN_NetIPv4Protocol.yml  # パラメータ

パラメータとして出力される情報は以下となります。

//OS/WIN_NetIPv4Protocol.yml
VAR_WIN_NetIPv4Protocol:
  AddressMaskReply: 0
  DefaultHopLimit: 128
  DhcpMediaSense: 1
  GroupForwardedFragments: 0
  IGMPLevel: 2
  IGMPVersion: 4
  IcmpRedirects: 1
  MediaSenseEventLog: 0
  MinimumMtu: 576
  MulticastForwarding: 0
  NeighborCacheLimit: 1024
  RandomizeIdentifiers: 1
  ReassemblyLimit: 33551232
  RouteCacheLimit: 32768
  SourceRoutingBehavior: 1

詳細については、以下の記事でより詳細に解説されています。
IPv4の設定

実行手順

1. ロールパッケージの登録

ITAの以下メニューからダウンロードしたzipファイルをITAに登録します。
メニュー: Ansible-LegacyRole >> ロールパッケージ管理
image.png

今回は以下のように登録します。
※ファイル選択→事前アップロードを押下し、登録する必要があります。

ロールパッケージ名 ロールパッケージファイル(zip形式)
Windows2019 OS-Windows2019.zip

2. Movementの登録

ITAの以下メニューからMovementを登録します。
メニュー: Ansible-LegacyRole >> Movement一覧
image.png
今回は以下のように登録します。

Movement名 ホスト指定形式 WinRM接続
WindowsDefender設定 IP
ローカルグループ IP
IPv4の設定 IP

3. Movementとロールパッケージの紐付け

登録したMovementとロールパッケージを関連付けます。
メニュー: Ansible-LegacyRole >> Movement-Role紐付
image.png
今回は以下のように登録します。

Movement ロールパッケージ名 ロール名 インクルード順序
WindowsDefender設定 OS-Windows2019 WIN_Defender/OS_gathering 1
ローカルグループ OS-Windows2019 WIN_Group/OS_gathering 1
IPv4の設定 OS-Windows2019 WIN_NetIPv4Protocol/OS_gathering 1

4. ターゲットマシンの登録

ITAの以下のメニューからターゲットとなる機器を登録します。
メニュー: 基本コンソール >> 機器一覧
image.png

今回は以下のように登録します。

HW機器種別 ホスト名 IPアドレス ログインユーザID ログインパスワード管理 ログインパスワード Legacy/Role利用情報認証方式
SV WindowsServer (ターゲットマシンのIPアドレス) (接続ユーザID) (任意のパスワード) パスワード認証(winrm)

5. オペレーションの登録

ITAの以下メニューからオペレーション(作業名)を登録します。
メニュー: 基本コンソール >> オペレーション一覧
image.png
今回は以下のように登録します。

オペレーション名 実施予定日時
設定収集 (任意の日時)

6. ターゲットマシンとMovementの紐付け

ITAの以下のメニューから登録したターゲットマシンとオペレーションを関連付けます。
メニュー: Ansible-LegacyRole >> 作業対象ホスト
image.png
今回は以下のように登録します。

オペレーション Movement ホスト
設定収集 WindowsDefender設定 WindowsServer
設定収集 ローカルグループ WindowsServer
設定収集 IPv4の設定 WindowsServer

7. 収集データ出力先変更

収集した情報を格納するためにVAR_OS_gathering_destを、生成したパラメータシートを出力するためにVAR_OS_extracting_destを指定します。
ITAの以下メニューから収集データ出力先フォルダの変更を行います。
メニュー: Ansible-LegacyRole >> 代入値管理
image.png

今回は以下のように登録します。

オペレーション Movement ホスト 変数名 具体値
設定収集 WindowsDefender設定 WindowsServer VAR_OS_gathering_dest "{{ __parameters_file_dir__ }}"
設定収集 WindowsDefender設定 WindowsServer VAR_OS_extracting_dest "{{ __parameter_dir__ }}"
設定収集 ローカルグループ WindowsServer VAR_OS_gathering_dest "{{ __parameters_file_dir__ }}"
設定収集 ローカルグループ WindowsServer VAR_OS_extracting_dest "{{ __parameter_dir__ }}"
設定収集 IPv4の設定 WindowsServer VAR_OS_gathering_dest "{{ __parameters_file_dir__ }}"
設定収集 IPv4の設定 WindowsServer VAR_OS_extracting_dest "{{ __parameter_dir__ }}"

8. 収集した値を登録するパラメータシートを作成する

ITAの以下のメニューからパラメータシートを作成します。
メニュー: メニュー作成 >> メニュー定義・作成
登録数が多いため、本記事では簡素な説明で留めさせていただきます。
詳細な解説をご覧になりたい方は、以下の記事を参照ください。
【参考】
Exastro IT Automation ver1.5.0のキホンの"キ"
Exastro IT Automationの3つのAnsibleモードを使ってみた

以下の操作を繰り返し、今回は3つのメニューを作成します。
① メニュー作成情報を入力する
② 対象メニューグループを設定する
③ 項目の名前やデータ型を設定する
④ 「作成」を押下する


WindowsDefenderメニュー作成

今回は以下のように登録します。
メニュー作成情報
image.png

メニュー名 作業対象 表示順序
WindowsDefender設定 パラメータシート(ホスト/オペレーションあり) 1

対象メニューグループ
デフォルトのまま作成します。

項目設定
image.png

項目名 入力方式 最大バイト数
DisableEnhancedNotifications 文字列(単一行) 128
FireWallDomainProfileNotice 文字列(単一行) 128
FireWallPublicProfileNotice 文字列(単一行) 128
FireWallStandardProfileNotice 文字列(単一行) 128
MAPSReporting 文字列(単一行) 128

ローカルグループメニュー作成

今回は以下のように登録します。

メニュー作成情報
image.png

メニュー名 作業対象 表示順序
ローカルグループ パラメータシート(ホスト/オペレーションあり) 2

縦メニュー利用にチェックを入れます。

対象メニューグループ
デフォルトのまま作成します。
image.png

縦メニューとは
以下を参照ください。
Exastro-ITA_利用手順マニュアル_メニュー作成機能
項目設定
image.png

項目名 入力方式 最大バイト数
Name 文字列(単一行) 128

REPEATに20を指定します。

リピートとは
縦メニューを利用する場合、項目設定でリピート機能を利用します。
設定したリピート回数に応じて、枠の中の項目が追加されます。


IPv4の設定メニュー作成

今回は以下のように登録します。

メニュー作成情報
image.png

メニュー名 作業対象 表示順序
IPv4の設定 パラメータシート(ホスト/オペレーションあり) 3

対象メニューグループ
デフォルトのまま作成します。
image.png

項目設定
image.png

項目名 入力方式 最大バイト数
AddressMaskReply 文字列(単一行) 128
DefaultHopLimit 文字列(単一行) 128
DhcpMediaSense 文字列(単一行) 128
GroupForwardedFragments 文字列(単一行) 128
IGMPLevel 文字列(単一行) 128

9. 収集項目管理の登録

ITAの以下のメニューから収集項目値を管理します。
各項目変数と項目を関連付けます。
登録数が多いため、本記事では簡素な説明で留めさせていただきます。

メニュー: Ansible共通 >> 収集項目値管理
image.png

WindowsDefenderの設定

今回は以下のように5件収集します。

バース形式 PREFIX(ファイル名) 変数名 メンバ変数 メニューグループ:メニュー 項目
YAML WIN_Defender VAR_WIN_Defender 辞書key WindowsDefender設定 パラメータ/辞書key

メンバ変数にはこちらを指定してください。

辞書key一覧
DisableEnhancedNotifications
FireWallDomainProfileNotice
FireWallPublicProfileNotice
FireWallStandardProfileNotice
MAPSReporting

変数の書き方については、こちらのドキュメントを参照ください。
Exastro-ITA_利用手順マニュアル

ローカルグループ

今回は、Nameの収集を行います。

バース形式 PREFIX(ファイル名) 変数名 メンバ変数 メニューグループ:メニュー 項目
YAML WIN_Group VAR_WIN_Group [x].Name ローカルグループ パラメータ/Name[x]

作成したリピート数だけ収集できますので、上記に添って0~19の間でXの値を変えながら20件の登録を行います。

IPv4の設定

今回は以下のように5件収集します。

バース形式 PREFIX(ファイル名) 変数名 メンバ変数 メニューグループ:メニュー 項目
YAML WIN_NetIPv4Protocol VAR_WIN_NetIPv4Protocol 辞書key WindowsDefender設定 パラメータ/辞書key
辞書key一覧
AddressMaskReply
DefaultHopLimit
DhcpMediaSense
GroupForwardedFragments
IGMPLevel

10. 作業実行

ITAの以下のメニューから実行を行います。
メニュー: Ansible-LegacyRole >> 作業実行
それぞれのMovementとオペレーションを選択し実行します。
image.png

メニュー: Ansible-LegacyRole >> 作業管理
実行が完了しましたら、それぞれ収集済みになっていることを確認します。
収集ログで結果を確認することもできます。
image.png

11. 実行結果確認

作成したメニューに値が入っているかどうか確認します。
メニュー: 入力用 >> WindowsDefender設定
image.png

メニュー: 入力用 >> ローカルグループ
image.png

メニュー: 入力用 >> IPv4の設定
image.png

メニュー: 代入値自動登録用 >> WindowsDefender設定
image.png

メニュー: 代入値自動登録用 >> ローカルグループ
image.png

メニュー: 代入値登録用 >> IPv4の設定
image.png

入力用では縦に、代入値自動登録用では横に一覧が表示されており収集が完了しました。

おわりに

今回のシナリオではPlaybookcollectionとITAを利用して、設定情報を収集しました。
Yamlファイルと、ITAの収集機能を連携して、Windowsサーバの設定内容をパラメータシートに自動で登録してくれるので作業の効率化やミス防止に繋がる機能であると感じました。
Windows Server2019用だけでも数多くのロールが提供されています。設定時に必要となるロールを適宜選択して利用することで、様々な用途で活躍することができるのではないでしょうか。

参考にしたリンク

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0