はじめに
Exastro Playbook CollectionサイトはOSやMWの環境構築や設定収集の機能を持つAnsible Roleを公開しているサイトです。
最近このサイトで同じExastro SuiteのExastro IT Automation(以降、ITAと表記)で簡単に使えるようロールパッケージ形式にしたOS(Windows、Linux)の構築・収集用Ansible Roleの配布を開始したようですので利用してみたいと思います。
ITAは「システム設定を一元管理」「複数の自動化ソフトウェアを連携実行」する機能を持っているようですが、今回はAnsible Role実行機能を利用してOS設定情報の収集を行ってみます。
使用機器
本記事では事前に作成しておいた以下のような環境で作業を行います。
- WebブラウザでITAを操作するためのクライアントPC
- ITAホストサーバ(CentOS 8.3+ITA 1.8.0)
- Exastro IT Automation マニュアルを参考ITAのインストールを行っておきます
- 設定情報の収集を行う対象のサーバ(Windows Server 2019)
- Ansible公式ドキュメントを参考にWinRMの設定を行っておきます
作業手順
1. Playbook Collectionを使用するための準備作業
ITAホストサーバにsudo可能なユーザでログインし、Exastro Playbook Collectionサイトの『準備作業』の手順を参考に準備作業を行います。
2. ジョブ作成
本章の手順はクライアントPC上のブラウザでITAホストサーバに接続して行います。
2.1. ロールパッケージのダウンロード
Exastro Playbook Collectionサイトから利用するロールパッケージをダウンロードします。
本記事では例として以下のロールパッケージを使用します。
対象製品 | Version | 機能 | 備考 |
---|---|---|---|
OS | WS2019 | 環境構築 & 設定収集 | 本記事では設定収集用機能のみ使用します。 |
2.2. ロールパッケージの登録
ITAの以下メニューからダウンロードしたロールパッケージを登録します。
- [メインメニュー] - [Ansible-LegacyRole] - [ロールパッケージ管理] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
『ロールパッケージファイル(ZIP形式)』に指定するファイルは『ファイルを選択』ボタンを押下してダウンロードしたロールパッケージを選択した後、『事前アップロード』ボタンを押下してアップロードします。
パラメータ | 設定値 |
---|---|
ロールパッケージ名 | OS-Windows2019 |
ロールパッケージファイル(ZIP形式) | OS-Windows2019.zip |
2.3. Movementの作成
ITAの以下メニューからMovementを登録します。
- [メインメニュー] - [Ansible-LegacyRole] - [Movement一覧] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
Movement名 | Windows2019設定収集 |
ホスト指定形式 | IP |
WinRM接続 | ● |
ヘッダーセクション | - hosts: all remote_user: "{{ __loginuser__ }}" gather_facts: yes |
2.4. Movementとロールパッケージの紐付け
ITAの以下メニューからロールパッケージとMovementの紐付けを行います。
- [メインメニュー] - [Ansible-LegacyRole] - [Movement-ロール紐付] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
Movement | Windows2019設定収集 |
ロールパッケージ名 | OS-Windows2019 |
ロール名 | OS-Windows2019/WIN_ALL/OS_gathering |
インクルード順序 | 1 |
3. 作業名登録
本章の手順はクライアントPC上のブラウザでITAホストサーバに接続して行います。
3.1. ターゲットマシン登録
ITAの以下メニューからターゲットマシンの登録を行います。
- [メインメニュー] - [基本コンソール] - [機器一覧] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
HW機器種別 | SV |
ホスト名 | Windows2019_01 |
IPアドレス | <ターゲットマシンのIPアドレス> |
ログインユーザID | <接続ユーザID> |
ログインパスワード 管理 |
● |
ログインパスワード ログインパスワード |
<パスワード> |
Ansible利用情報 認証方式 |
パスワード認証(winrm) |
Ansible利用情報 ポート番号 |
5986 |
Ansible利用情報 追加オプション |
ansible_winrm_server_cert_validation: ignore |
3.2. オペレーション登録
ITAの以下メニューからオペレーションの登録を行います。
- [メインメニュー] - [基本コンソール] - [オペレーション一覧] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
オペレーション名 | Windows2019 |
実施予定日時 | 2000/01/01 |
『実施予定日時』は本記事では任意の日時を指定します。
3.3. ターゲットマシンとMovementの紐付け
ITAの以下メニューからターゲットマシンとMovementの紐付けを行います。
- [メインメニュー] - [Ansible-LegacyRole] - [作業対象ホスト] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
オペレーション名 | Windows2019 |
Movement名 | Windows2019設定収集 |
ホスト名 | Windows2019_01 |
4. ジョブ実行
本章の手順はクライアントPC上のブラウザでITAホストサーバに接続して行います。
4.1. 収集データ出力先フォルダ変更
ITAの以下メニューから収集データ出力先フォルダの変更を行います。
- [メインメニュー] - [Ansible-LegacyRole] - [代入値管理] - [登録] - [登録開始]
ここでは以下の値を指定し『登録』ボタンを押して登録を実行します。
パラメータ | 設定値 |
---|---|
オペレーション | Windows2019 |
Movement | Windows2019設定収集 |
ホスト | Windows2019_01 |
変数名 | VAR_OS_extracting_dest_all |
具体値 | "{{ __parameter_dir__ }}" |
通常、収集したデータはITA内部のPlaybook実行フォルダ配下に出力されブラウザからダウンロードできないため、出力先をITAの結果データ格納フォルダ(ResultData_xxxxxxxxxx.zipとして圧縮され、ダウンロード可能なフォルダ)配下に変更します。
4.2. ジョブ実行
ITAの以下メニューからOperation、Movementを指定してジョブ実行を行います。
- [メインメニュー] - [Ansible-LegacyRole] - [作業実行]
ここでは以下の値を指定し『実行』ボタンを押してジョブを実行します。
パラメータ | 設定値 |
---|---|
Movement | Windows2019設定収集 |
オペレーション | Windows2019 |
5. 結果確認
本章の手順はクライアントPC上のブラウザでITAホストサーバに接続して行います。
5.1. 結果データダウンロード
ジョブ実行後、[作業状態確認]画面からResultData_xxxxxxxxxx.zipをダウンロードして展開すると、解凍先の_patametersフォルダ配下に収集したデータ(YMLファイル形式)が格納されています。
ResultData_xxxxxxxxxx.zip
+---_parameters/
+---Windows2019_01/
+---OS/
+---WIN_AutoShareServer.yml
+---WIN_ComponentService.yml
+---WIN_ComputerSetting.yml
+---WIN_DataCollectorSet.yml
+---WIN_Defender.yml
+---WIN_DeviceInstallSetting.yml
+---WIN_DeviceManager.yml
+---WIN_EnvSetting.yml
+---WIN_ErrorReporting.yml
+---WIN_EventLog.yml
+---WIN_Group.yml
+---WIN_Hosts.yml
+---WIN_HotFix.yml
+---WIN_InstallPP.yml
+---WIN_NetAdapterAdvancedProperty.yml
+---WIN_NetAdapterBinding.yml
+---WIN_NetAdapterConfiguration.yml
+---WIN_NetFirewallProfile.yml
+---WIN_NetFirewallRule_Inbound.yml
+---WIN_NetFirewallRule_Outbound.yml
+---WIN_NetIpAddress.yml
+---WIN_NetIPv4Protocol.yml
+---WIN_NetIPv6Protocol.yml
+---WIN_NetOffloadGlobalSetting.yml
+---WIN_NetworkDrive.yml
+---WIN_NetworkManagement.yml
+---WIN_NICTeaming_Team.yml
+---WIN_NICTeaming_VLAN.yml
+---WIN_NtpClientSetting.yml
+---WIN_OSRecoveryConfiguration.yml
+---WIN_PagefileSetting.yml
+---WIN_PartitionSetting.yml
+---WIN_PrinterInfo.yml
+---WIN_PrivateSetting.yml
+---WIN_ProcessorScheduling.yml
+---WIN_RemoteDesktop.yml
+---WIN_Services.yml
+---WIN_SharedFolder.yml
+---WIN_SNMPService.yml
+---WIN_StartUp.yml
+---WIN_UserAccount.yml
+---WIN_VolumeSetting.yml
+---WIN_WindowsFeature.yml
以下、一例です。
---
VAR_WIN_ComputerSetting:
Description: ''
Name: Windows2019_01
DNSDomainSuffixSearchOrder: null
SyncDomainWithMembership: 1
DomainOrWorkgroup: false
DomainOrWorkgroupName: WORKGROUP
DomainUser: ''
DomainPassword: ''
メンバー変数 | 意味 |
---|---|
Name | フルコンピュータ名 |
Description | コンピュータの説明 |
: | : |
6. おわりに
今回はExastro Playbook Collectionのロールパッケージを使ってみました。
本記事のように単機能で利用するのであればAnsible Playbookをそのまま実行した方が簡単ですが、他の機能と組み合わせたり設定情報を構成管理したりと、ITAは様々な機能を持っているようですのでうまく組み合わせて便利に使えるのではないかと思います。
以前にITAへロールの組込みを行った際には独自設定ファイルの作成など敷居の高さを感じていましたが、かなり利用が簡単になった気がします。
色々試してみたいと思っています。
7. 参考にした情報
- 公式サイト
- ドキュメント類
- 関連Qiita記事