Chef 12対応版 Chef ClientのbootstrapインストールとCookbookの実行～Windows Server 2016 TP5編～ 

この記事は、[「クラウド時代のシステム管理」の記事](http://www.takanyan.net/chef12-client-win2016tp5/)を転記したものです。

<a href="http://www.takanyan.net/chef12-client-cent7/" target="_blank">前回の記事</a>ではCentOS7にChef Clientを導入し、Chef Server管理下でCookbookを実行しました。今回は、同じことをWindows Server 2016 TP5に対して行います。手順はC<a href="https://docs.chef.io/install_windows.html" target="_blank">hefの公式ドキュメントのこちらのサイト</a>をベースにしています。

<more>

## 1. Windows Server 2016 TP5のISO入手とOSインストール

### 1-1. ISOファイルのダウンロード

Windows Server 2016 TP5は2016年7月24日時点では<a href="https://www.microsoft.com/ja-jp/evalcenter/evaluate-windows-server-technical-preview" target="_blank">こちらのサイト経由</a>で入手可能です。ただし、リリースが2016年9月末ですので、RTM後は評価版ISOが別サイトから入手可能になると思われます。必要な登録などを済ませたうえで、ISOファイルをダウンロードしてください。

### 1-2. Windows Server 2016 TP5のインストール

Windows 10 Insider Preview (Build 14393)上のHyper-V上の仮想マシンとしてインストールを行いました。ただ、私の環境では仮想マシンバージョンを第2世代かつUEFIセキュアブートを有効にするとISOからの起動はうまくいくものの、その後の再起動でHDDから起動しませんでした。今回は諦めて第1世代でインストールしました。

インストールが完了したら、ホスト名、IPアドレス、DNSまたはhostsファイルの設定を行い、Chef Serverから名前解決ができること、ネットワークがつながることを確認します。

## 2. Chef Clientインストール前の各種設定とChef Clientインストール

Chef Clientの導入には<code>knife bootstrap windows</code>コマンドを使います。このコマンドでは、Windows Serverに対してSSHもしくはWindows Remote Management (WinRM)経由で接続し、操作を行います。

### 2-1. Windows Remote Managementの設定

今回はSSHではなくWinRMでWindows Serverと接続するための設定を行います。設定はPowerShellを管理者として実行し、<code>winrm quickconfig</code>を実行するだけです。

<a href="http://www.takanyan.net/wp-content/uploads/2016/07/win2016setting2.png"><img src="http://www.takanyan.net/wp-content/uploads/2016/07/win2016setting2.png" alt="win2016-quickconfig" width="1024" height="728" class="aligncenter size-full wp-image-181" /></a>

### 2-2. knifeコマンドによるChef ClientのインストールとCookbookの実行

すでに<a href="http://www.takanyan.net/chef12-client-cent7/" target="_blank">前回の記事</a>で「chef-client」というCookbookが準備済みですので、Chef Workstationから以下のコマンドを実行し、Chef Clientをインストールします。ここでもOrganizationの秘密鍵を削除するRecipe「chef-client::delete_validation」を実行しています。

```Shell
[chef-admin@chefserver chef-repo]$ knife bootstrap windows winrm win2016tp5-chef -r 'recipe[chef-client::delete_validation]' -x Administrator -P '(Administratorのパスワード)'
Doing old-style registration with the validation key at /home/chef-admin/chef-repo/.chef/takanyan-validator.pem...
Delete your validation key in order to use your user credentials instead


Waiting for remote response before bootstrap.win2016tp5-chef .
win2016tp5-chef Response received.
Remote node responded after 0.0 minutes.
win2016tp5-chef AMD64
Bootstrapping Chef on win2016tp5-chef
(省略)
win2016tp5-chef [2016-07-24T08:05:43+09:00] INFO: Chef Run complete in 8.016426 seconds
win2016tp5-chef [2016-07-24T08:05:43+09:00] INFO: Running report handlers
win2016tp5-chef [2016-07-24T08:05:43+09:00] INFO: Report handlers complete
```

正常に完了したら、Chef ServerのWeb管理画面で管理対象にWindowsが追加されていることを確認します。

<a href="http://www.takanyan.net/wp-content/uploads/2016/07/chefserver-win2016tp5.png"><img src="http://www.takanyan.net/wp-content/uploads/2016/07/chefserver-win2016tp5.png" alt="chefserver-win2016tp5" width="1123" height="991" class="aligncenter size-full wp-image-182" /></a>

また、Windows側にChef Clientがインストールされていることを確認します。

<a href="http://www.takanyan.net/wp-content/uploads/2016/07/checlient-installed-1.png"><img src="http://www.takanyan.net/wp-content/uploads/2016/07/checlient-installed-1.png" alt="checlient-installed" width="1024" height="728" class="aligncenter size-full wp-image-185" /></a>

以上で、Chef Server管理下にWindows Server 2016 TP5を置くことができました。