1. はじめに
Windows Server 2012は、WinRMのセットアップさえやれば
Ansibleから制御可能です。ですが。
きっと日本中の情報システムにはまだまだ現役のWinServer2008がいることでしょう。
そいつらもAnsibleでまとめて面倒見てやりたいもんです。
Legacyな環境というのは残るんです。
安易にリプレイスできれば誰も悩みません。
そんなLegacy環境にすらモダンなオペ手法を用いることができてこそ我が正義。
でも、できるだけ簡単に…という気持ちで書きました。
2016.6.15追記
記事内の「以下」に当たるURLを明示していませんでした。大変失礼しました。
読んでいただいた皆様、本当に申し訳ありません。。。
※以下ってどこだよ、とか思わせてしまい…
2. 実行環境
item | version | note |
---|---|---|
Windows | Windows Server 2008 R2 SP1 | ふるい |
PowerShell | 4.0 | もともとは2.0 |
Ansible | 2.0.2.0 | あまりこだわらず |
3. やること
※本記事は2016年6月時点で動作した手順です。
- .NetFramework 4.5.2のインストール
- Windows Management Framework 4.0のインストール
- WinRMのセットアップ
この3手順です。
順に説明していきます。
(1) .NetFramework 4.5.2のインストール
オフラインインストーラをここより取得し、
制御したいWinServer上でダブルクリックです。
再起動は不要のようです。
(2) Windows Management Framework 4.0のインストール
本プログラムにPowerShell 4.0を含みます。
同じくオフラインインストーラをここより取得し、
制御したいWinServer上でダブルクリックです。
再起動が要ります。
本手順ではリンク先のダウンロードボタン押下後表示される一覧より
Windows6.1-KB2819745-x64-MultiPkg.msu
をダウンロードし、インストールしています。
参考記事: PowerShell/Windows7にPowerShell4.0をインストールする手順
WinServer2008R2SP1は、PowerShell5.0もサポートしているようですが
あまり深く考えず4.0を採用。
(3) WinRMのセットアップ
以下のコマンドをコマンドプロンプトで実行します。
> winrm quickconfig -q
> winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
> winrm set winrm/config @{MaxTimeoutms="1800000"}
> winrm set winrm/config/service @{AllowUnencrypted="true"}
> winrm set winrm/config/service/auth @{Basic="true"}
> sc config WinRM start= auto
4行目5行目はAnsible(がWinRMを用いて行う)の接続の仕方に関して設定してます。
参考記事: コマンドプロンプトよりWinRM へ以下設定を追加
4. あとがき
AnsibleのWindows向けサポートは(おそらく)これから充実していくのだろー
と思われます。
翻ってWindowsなんて、という声も聞こえてきそうですが
Azureが好調そうなのでノウハウとして身につけておくのも
無駄ではないかな、的な思いがいたします。
※Azureをいじったことはない
あと、サーバにinternet reachabilityがねえとか
OSや環境の最新版ってナニみたいなマゾい環境でも
自動化、DevOps、めげずになんとかしたいですよね。