Hack the World!

プログラミングや,ネットワークに関する話題を取り扱っています.知識をつけて,優雅にお仕事するのを目指しています.

Ansible meets Windows というタイトルで Ansible meetup in Tokyo 2014.09にて、発表してきました。 #ansiblejp

Ansible meets Windowsというタイトルを予定しておりましたが、

更にPUSHして、CobblerでWindowsのBaremetal Deploymentまでやってみたまで発展させてみました。というお話です。

 

1h27m 辺りから再生すれば、当該の発表を見ることが出来ます。

が、我ながらぼそぼそ言っててよくわかりません(笑


Ansible Meetup in Tokyo 2014.09 - YouTube

 

発表資料はこちら

 

 

発表中に使ったPlaybookはこちら。 


ansible for windows

Windows には本当に悩まされていて、聞いて頂いてた人の中にその辛さがわかってくれる人がいてくれたのは嬉しかったです。

 

 

Togetterにも当時のつぶやきが残っているので、御覧ください。


Ansible Meetup in Tokyo 2014.09 #AnsibleJP - Togetterまとめ

 

 

 

さて、Cobblerを推してみたのはいいですが、OpenStackのIronicがいつのまにやらIncubationを卒業していたようです。

Ironicも試してみようかな−。

Cobbler でWindowsイメージ配信

Githubに必要なファイルあげました。

gracefullife/cobbler_windows · GitHub

 

要望あれば解説を増やしていきたいと思います。

とりあえず今はこれだけ

 

ほぼほぼメモみたいな雑文になっておりますが、

以下もご参照ください。



Windows Bootstrapping 2.5日目

ようやくインストール対象になるOSイメージが必要なシーンまでやってきた。
Sambaを通じて、マウントしてSetup.exeを叩くだけの簡単なお仕事です。(とか言いつつ1日かかった)


  1. DVDの中身をまるっとコピー
  2. WSIMのimgmgr.exeでinstall.wim(or clgファイル)を開く(インストール対象のメディアに含まれている)
    1. インストール対象のエディションを選択
  3. 自動応答内容(unattended.xml)を設定する。
    1. ドライバとかもここに入れられるらしい。(会社でやるときはコレ必要そう)
    2. (ここは後で詳細に書く)
  4. DVDの中身をSambaでアクセス可能にする。
  5. Sambaをインストール中でマウントするために、パスワードを設定しておく (/var/lib/cobbler/scripts/mountmedia.cmd)


応答ファイルは、WSIMを使って作る。
WSIMは、Windows ADKに含まれている。
多分パスは以下のとおり

C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\WSIM\imgmgr.exe


応答内容の細かい設定は以下を見ればわかるようになっている。
http://technet.microsoft.com/ja-jp/library/cc749204(v=ws.10).aspx



基本的なインストールは、以下のコンポーネントを利用する。
Microsoft-Microsoft-Windows-International-Core(ディスクのフォーマットなど)
Microsoft-Windows-Setup-neutral(ユーザー作ったり、)

OOBEとか調べれば、ブランドイメージを表示しつつWindowsのセットアップとか出来そう。







何でこんなことをやってるかといえば、WinRMを初期構築時から有効にしたいからなのです。
会社で使ってるのが2008R2なので、2008R2で試していたのですが、
Powershellのバージョンは2なので、更にアプリケーションのインストール等も頑張らないとダメですね。


個人で色々試すぶんには、Windows8/2012でいくとして、
会社のは手順書で何とかします。

というか、SCCMとか使えばいいだけの話で頑張ってCobblerでやることもないわけですが、
もはや興味本位ですね。


とりあえず出来たので、後でgithubに必要なファイル類はあげておこうと思います。
アクセス数が多ければ、もう少し詳細に書きたいと思います。


参考URL
http://technet.microsoft.com/ja-jp/library/cc749317(v=ws.10).aspx
http://social.technet.microsoft.com/Forums/windowsserver/en-US/40cd085f-9a71-47a1-825b-79bde4f13fb2/enable-winrm-on-unattended-installs?forum=winserverManagement

Windows Bootstrapping 2日目

とりあえず、WindowsPEはちゃんと起動しています。



ここからさきは、LinuxKickstartと同様の仕組みをWindowsでも実現してやる必要がありそうです。


Cobblerは、Kickstartファイルに対して、Snippetという仕組みを導入しており、
その中で逐次ターゲットから、HTTPリクエストを受け取って状態管理をしています。
triggerというURLにリクエストを行う事でその仕組を実現しています。


また、逐次Cobblerの中に有る情報を引っ張りだすために、
HTTP通信をしています。
色々デバッグをして、ついにCobblerのSystemにつけた名前が取得出来ました。


これにてこの後、Windowsのセットアップに必要な情報(応答ファイルの取得)などができるようになります。




元記事にちゃんと書いてなかったのですが、DHCPで【固定アドレス】を割り振ってやる必要があるようです




ちなみに全部まとまったら必要なファイル類はgithubにあげ用途思っています。



■やったこと(備忘録)
Curlのみ導入した環境を作って、cmdファイルの再現
・cmdファイルにPAUSEを埋め込んでエラーを起こしている箇所の確認
・Winpeshl.iniファイルを消せば対話環境が作れることにきづいて、対話的にデバッグ(notepad.exeも使えた。)

WindowsでもPXEブートしたい。1.5日目(成功)

普通にOSCDImgコマンドの引数を間違っていただけだった。
というわけで、wpeinitまでは起動できた。

後は、OSイメージの展開とwincurlとか入れて、バッチファイルなり、ansibleなりと連携させる方法をやればいいだけだね。


参考:http://technet.microsoft.com/ja-jp/library/dn293200.aspx

WindowsでもPXEブートしたい。1日目(失敗)

WindowsでもPXEブートして、Kickstart!的な事ができると聞いたので、試してみました。s
http://www.letifer.org/2014/03/26/cobbler-and-windows/


が、WinPE5.0(Windows 8.1カーネル)なんかを使ってみたのですが、Windows AIK→Windows ADKに変わっていることでディレクトリ構成なんかもさっぱり変わっているのでちょっと良くわかりませんでした。
おかげ様で、BOOTMGRがないよ、とご丁寧にエラーが吐かれてしまっています。


とりあえず今日の収穫は、以下のとおり
1.Windows ADKの場合、pecopy使う前に環境変数を設定しよう
1. WinPERoot
2. OSCDImgRoot
2. そもそも、ADKとAIKで作りが違うっぽいので、AIKでやり直し。


続きはまた明日。

Ansible勉強会#1に参加します。

Ansible勉強会#1にてLTをしてきます。

http://ansible-users.connpass.com/event/5968/

■開催概要
日時:2014/06/10(火) 19:00 〜 21:00
場所:Red Hat 東京オフィス 東京都渋谷区恵比寿4-1-18 (恵比寿ネオナート 5階セミナー会場)


■ #ansibleja



■発表する人たち




さーて、会社に申請していってみよー。