ページ

2015年4月4日土曜日

Windows7SP1 zero-touch Deployment その1


Windows7SP1 zero-touch Deployment  その1

 

Volumeライセンスでの大量展開は他にかなりのドキュメントがありますのでそちらをご参照ください。
またここではWindows7を扱います。WindowsXP、Windows8~は扱っていません。



ここではOEMライセンスで、かつOSの再インストールを想定しています。

例えば長年稼働しているPCで、GHOST等のバックアップ/クローニングを実施していない場合や、原因不明のトラブル等でハードウェアの一部ごとリカバリする場合です。

大量展開では

  • Volumeライセンスを購入
  • 参照コンピュータを構築しイメージング
  • イメージの展開


となるわけですが

  • ときどきしかWindowsをセットアップしない
  • セットアップするハードウェアがバラバラ
  • 構築されているアプリケーションのバージョンアップが多く、バージョンが合わない
  • そもそもライセンスを契約する金がない(致命的やな)

となればイメージングできません。

ましてや3年前のイメージを展開/リカバリしたところでセキュリティパッチの適用、アプリケーションのバージョンアップとインストール・・・
という面倒くさいことになります。
ましてやトラブルの原因ごとリカバリしてしまっては・・・
Windowsを素でインストールすれば、トラブルもすっきり解消です。
 (Sysprep/Dismでもコンポーネントとパッケージの追加ができますので、セキュリティパッチくらいは再展開しないままでのインストールは可能です。これも面倒くさいので普通はしないかな?)


ということでここでは以下の手筈で環境構築とインストールを行います。


  1. テクニシャンコンピュータの構築
  2. 仮想環境の構築
  3. 仮想環境での展開
  4. 実環境での展開

とくに仮想環境は重要です。
いきなり実環境でテストしないでください。
Windowsの展開ではトラブルはつきものです。そのトラブルの度にWindowsをインストールし直しになりますので、多量の時間がかかります。
仮想環境ではいくらかの時間短縮が望めますので、無人インストールの初期テストは仮想環境をおすすめします。




1. テクニシャンコンピュータの構築




Microsoftがいうところのテクニシャンコンピュータです。
ここでは長いのでTECHPCとします。
詳細はMicrosoftのリンク先を参照してください。

SEの雑記
https://engineermemo.wordpress.com/waik/

このSEの雑記さんがくわしいです。



簡易ネットワーク環境の図

画像は
Microsoft - 試験環境を構築する
http://technet.microsoft.com/ja-jp/library/dd744515(v=ws.10).aspx
から

実PCになってますが、仮想PCで十分です。
VirtualBOXでテストしてますが、上記の「セットアップ先のコンピュータ」が実PCとなる場合は、仮想PCのネットワーク設定を「ブリッジアダプタ」にしてください。

仮想PCをホストしているネットワーク(実環境ネットワーク)に仮想PCが追加されますので、簡単にターゲットPCをテストできます。




ここでは仮想PC上にテクニシャンコンピュータ - TECHPCを構築することにします。
OS/Windwosがない人はWindows7評価版(32bit)をインストールしておいてください。


以下のWindows7用AIKをインストールします。

Windows® 7 用の Windows® 自動インストール キット (AIK)
http://www.microsoft.com/ja-jp/download/details.aspx?id=5753


WAIKをインストール後、補足プログラムを上書きします。

Windows® 7 SP1 用の Windows® 自動インストール キット (AIK) 補足プログラム 
http://www.microsoft.com/ja-jp/download/details.aspx?id=5188


補足プログラムの説明とインストール方法(上書きするだけです)。

Windows 7 SP1 用の Windows AIK について
http://blogs.technet.com/b/askcorejp/archive/2011/04/01/windows-7-sp1-windows-aik.aspx




Windows7インストールを無人にするための無人応答ファイルを作成します。この応答ファイルを作成するためにWindows システム イメージ マネージャ (Windows System Image Manager、以下WSIM)があります。
これはWindowsAIKに含まれています。



このテクニシャンコンピュータ - TECHPCですが、通常はWindowsAIKのインストールとWindowsPEの作成のみです。
しかしここでは上記に加えて

  • TFTP/PXEサーバ
  • DHCPサーバ
  • 配布共有(インストールイメージやパッケージ、アプリケーションを格納している)

それぞれの機能をこのTECHPCに持たせます。
もちろん別々のPCでも構いませんが、お客様環境/部門環境では統合したほうがいいでしょう。特に小さなネットワーク環境では。


というわけで追加設定です。


1.1. 追加設定 - Windowsとフォルダの設定



Windowsの以下の機能を切っておくと後々便利です。

  • ユーザー アカウント制御の設定 - 通知しない
  • Windowsファイアウォール - Windowsファイアウォールを無効にする

使用するフォルダをつくります。
ついでに共有しておきます。
なぜかバッチファイルで記述します。



mkdir C:\winpe      
WindowsPE展開用フォルダ
mkdir C:\share       Windows展開用フォルダ / 配布共有元
mkdir C:\PXE         TFTPフォルダ
mkdir "C:\share\$OEM$ Folders"
mkdir "C:\share\Out-of-Box Drivers"
mkdir C:\share\Packages

net share share=C:\share /grant:Everyone,FULL
icacls C:\share /T /grant:r Everyone:(OI)(CI)(F)
net share PXE=C:\PXE /grant:Everyone,READ
icacls C:\PXE /T /grant:r Everyone:(OI)(CI)(RX)



確認はnet shareコマンドか、管理ツールかな?GUIに慣れきってますね。


1.2. WindowsPE3.1の作成(パッケージ追加)



WindowsPE3.1を作成します。ここからPCを起動し、Windowsのインストーラはコマンドラインから指定します。
注意点としては、

絶対にWindows7用WindowsAIKでWindowsPE3.1を作成してください。
これからインストールするWindowsアーキテクチャが32bitなら32bitWindowsPEを、
64bitWindowsアーキテクチャなら64bitWindowsPEを作成してください。

アーキテクチャが違ったり、バージョンが違ったり(例えばWindowsPE4.0でWindows7をインストール)するとインストールの途中でこけます。

構成パスでいう「windowsPE」「offlineServicing」ではデバイスドライバを、さっき作ったWindowsPEから引っこ抜いてインストーラに渡します。

なのでアーキテクチャが違ったりするとトラブルのもとになります。
(WindowsPE4.0からWindows7をインストールしようとして何度もこけまくった...)



PEの作成コマンドについては後日追加予定です。
ここらへんがMicrosoftのドキュメントになります。

Windows PE イメージを構築する
http://technet.microsoft.com/ja-jp/library/dd799244(v=ws.10).aspx


注意点としてはWindowsPEのイメージに以下の追加をすること。

スクリプト/スクリプト日本語パッケージ(あんまりスクリプトぐりぐりしないけど)。


Dism /image:C:\winpe\mount /Add-Package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-scripting.cab"

Dism /image:c:\WinPE_x86\mount /Add-Package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\ja-jp\winpe-scripting_ja-jp.cab"



その他はここから参照してね。

1.3. WindowsPE3.1の作成(ドライバ追加)

DELL-PC用インストールドライバCABパッケージの追加をします。
VirtualBox等の仮想環境のみでテストするなら不要かな?

DELL-PC用のWindowsPE用にドライバを一括で固めたCABファイルがここにあります。

Dell Command | Deploy - Driver Packs for Enterprise Client OS Deployment
http://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-driver-cab-files-for-enterprise-client-os-deployment

ここの

WinPE - CAB Availability (follow the links for CAB details and to download)

WinPE versionCurrent CAB
WinPE 5.xA04 (04/14/2015)
WinPE 4.x A05 (09/15/2014)
WinPE 3.xA16 (04/14/2015)
WinPE 2.xA00 (05/26/2009)


っていうやつです。WinPE 3.x A16ですね。

Windows7をインストールできるDELL製PCのPE用ドライバが一括で適用できます。
なんて便利やねん...
すげえ。
同じく下のほうにターゲットとなるDELL製PCのドライバが転がってますのでダウンロードしておきます。


でダウンロードしたら


Dism /image:C:\winpe\mount /add-driver /driver:"C:\share\Out-of-Box Drivers\PE" /recurse


/recurse で一括適用です。




続きは次回でござる。


2014年6月22日日曜日

Intel D510MOにCentOS6.5をインストール その2


Intel D510MOにCentOS6.5をインストール

その2   ~ ファイルシステム拡張編 ~



ちょっと古めの省電力ボード、Intel D510MOにCentOS6.5をインストールしてみました。

その2です。
その1はこちら。

前回は実機にソフトウェアRAIDでCentOS6.5をインストールしています。
今回はそのメンテナンスをしないといけません。

具体的にいうと今までの流れは、

  • 今までは2TB×2でRAID1、FreeNAS7.x でファイルサーバ
  • FreeNASの片側を取り外し、フォーマットしてNTFSとして外付けHDDに
  • FreeNASから外付けHDDにデータ退避
  • 外付けHDDのデータが通常通り使用できることを確認してから、FreeNASを壊す
  • 2TBが1本とどっかから引っ張ってきた300GB1本で、とりあえずCentOS6.5をインストール


でした。
簡単にCentOS6.5をRAID1でインストールするために300GBをくっつけたわけですが、インストール完了したらもう不要です。

ってことで300GBHDDを取り外します。
取り外しの手順と、データ戻しまでの手順は以下の通り。

  1. ソフトウェアRAIDの現状を確認する
  2. RAIDメンバからディスクを取り出す
  3. アレイサイズ、LVM、ファイルシステムを拡張する



2014年6月11日水曜日

Intel D510MOにCentOS6.5をインストール その1


Intel D510MOにCentOS6.5をインストール

その1



ちょっと古めの省電力ボード、Intel D510MOにCentOS6.5をインストールしてみました。
Atom D510をオンボードのMini-ITXボードです。
今まではFreeNAS7を使っていましたが、クライアントすべてWindows8.1になってからファイルサーバとしてはSambaのバージョン違いが致命的になってきました。

そこでCentOS6.5にSamba4.0をインストールして快適なファイルサーバへ更新します。
手順は以下の通り。ほとんどがココと同じ手順ですが、やはり仮想マシンと実機での違いはあります。


  1. CentOS6.5イメージをダウンロード
  2. インストールイメージをUSBメモリに書き込み
  3. USBメモリからPCを起動してCentOS6.5をインストール
  4. インストール後の設定(SSHができるまで)


ちなみにデータは外付けHDDに書き出してあります。ファイルサーバ構築後に戻すつもり。








2014年5月31日土曜日

Transmissionのインストール その1


Transmissionのインストール その1

 

1. Transmissionをインストールする


Transmissionはyumでインストールできません。yumにリポジトリを追加してTransmissionをインストールしてもOKですが、ここでは最新バージョンを探してきてインストールしてみます。
まずTransmissionのトップページはここです。

www.transmissionbt.com

2014年5月30日では2.83がリリースされてました。
DownloadページからCentOSをたどっていくとgeekeryに飛んでいきます。
つまりgeekeryのリポジトリを追加してyumでインストールしてちょ、という意味です。

今は最新バージョンを探していますのでこのあたりで探してみます。

http://rpm.pbone.net/

「Search」、「Advanced RPM Search」とたどっていくとOSの絞り込みができたりしますのでこのページでCentOS6にチェック、「Transmission」を探します。

最新ではありませんが2.82ってのが出てきます。
ダウンロードする必要はありません。rpmファイルのリンクをクリップボードにコピーしてください。
さっそくインストールします。


[root@centos ~]# rpm -ivh [rpmファイルのリンク]

            (例 : rpm -ivh ftp://ftp.pbone.net/...省略.../x86_64/transmission-daemon-2.82-38.1.x86_64.rpm)


インストールしようとすると依存関係を問われて、インストールできないはずです。
なので先に

  1. transmission-common-2.82-38.1.x86_64.rpm
  2. transmission-cli-2.82-38.1.x86_64.rpm

をインストールしてください。

最新の2.83はソースからビルドするみたいですが調べてません。


2. 起動/停止スクリプトを作る

起動スクリプトは
/etc/init.d/
にあります。
が、Transmission は(rpm からインストールしたので?)起動スクリプトが存在しません。

https://trac.transmissionbt.com/wiki/Scripts/initd#StartStop

ここに起動スクリプト、"transmission-daemon" があります。
このままこれを /etc/init.d/ に入れ込んでもいいのですが、start-stop-daemon なる Debian 用コマンドが書かれてあります。
つまり Debian 等用ですので CentOSで動いてくれません。

で、自分で書くんですが、テンプレートがあります。
 /usr/share/doc/initscripts-9.03.40/sysvinitfiles
おそらく数字はバージョンですので必ずしも上のパスになるわけではありませんが、このあたりでしょう。
このスクリプトを流用しつつ、

http://www.itmedia.co.jp/help/howto/linux/0007master/01/11.html
http://blog.jicoman.info/2014/04/centos_init_script/
http://www.searchman.info/tips/1620.html

のあたりを参考にしながらコツコツ書いていきます。
で、出来上がりはここです。

スクリプトが出来上がったら /etc/init.d/ に transmission-daemon という名前で保存しときます。
誰でも実行できるように権限を変更し、所有者を変更します。
このあたりは上記の Transmission のWikiどおりです。



[root@centos ~]# chmod +x /etc/init.d/transmission-daemon
[root@centos ~]# chown root:root /etc/init.d/transmission-daemon





3. chkconfigへの登録と自動起動設定

chkconfigに先ほどのスクリプトを登録します。
そのあとchkconfigから自動起動を設定します。


[root@centos ~]#  chkconfig --add transmission-daemon
[root@centos ~]#  chkconfig  transmission-daemon  on

            (この場合のランレベルの設定は2、3、4、5になります)
            (--level <レベル> 引数をつければ変更可能です)
            (2のネットワークなしでtransmissionを起動したりはしませんので、

[root@centos ~]#  chkconfig  --level 345 transmission-daemon  on

            (--level <レベル> 引数をつければ変更可能です)


エラーなければOK。確認します。


[root@centos ~]#  chkconfig --list transmission-daemon
transmission-daemon     0:off   1:off   2:off    3:on    4:on    5:on    6:off




4. serviceコマンドで起動/停止

chkconfigに登録できたらserviceコマンドで起動、停止できるようになります。


[root@centos ~]# service transmission-daemon start
Starting transmission-daemon:                                    [  OK  ]
[root@centos ~]# service transmission-daemon stop
Shutting down transmission-daemon:                         [  OK  ]




transmission-daemon がCentOS上で起動しているかどうかはpsコマンドで確認してください。
動いているときはこんな感じです。


[root@centos ~]# ps ax | grep transmission
  984 ?        Ssl    0:01 transmission-daemon
 1065 pts/0    S+     0:00 grep transmission





今回はここまでです。
次はTransmissionの設定をしてtorrentファイルからダウンロードしてみます。



ちなみにシャットダウンは


[root@centos ~]#  shutdown -h now



です。お忘れなく。


2014年5月27日火曜日

Bloggerに google-code-prettify を入れてみた


Bloggerに google-code-prettify を入れてみた


このブログはGoogleのBloggerなんですが、コードが多くなってきたので見やすいようにGoogle謹製google-code-prettify を突っ込んでみました。
これでちょっとは見やすくなったでしょうか?

test
# comment
# comment2
test2
echo "Blogger Echo"




導入方法は以下の通り。


  1. https://code.google.com/p/google-code-prettify/wiki/GettingStarted にアクセスして適当にフムフムと理解する。ちなみに英語は読めない。
  2. HTML編集モードにして、<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script> をHTMLの1行目に追加する。コードをハイライトしたいHTML毎になります。
  3. そのままHTML編集モードでハイライトしたいコードの前後に
    <pre class="prettyprint linenums">
    Many
    lines
    of
    code
    </pre>
    と
    <pre class="prettyprint></pre>
    を入れます。「linenums」をとればシンプルな行番号のないハイライトになります。



とまぁ他のブログに書いてある通りで、そこまで格好よくはならない感じです。

transmission-daemon起動スクリプト


transmission-daemon起動スクリプト

もうちょっといいものがあるでよ、という人はぜひご連絡を、、、




#!/bin/sh
#
#
# description: transmission-daemon
# chkconfig: 35 95 5
# processname:transmission-daemon


# Source function library.
. /etc/init.d/functions

# Get network config.
. /etc/sysconfig/network

# Check that networking is up.
if [ ${NETWORKING} = "no" ]
        then
                echo "networking is not up"
                exit 0
fi

DAEMON_USER="transmission"

prog=transmission-daemon
DAEMON_PIDFILE=/var/run/$prog.pid
DAEMON_LOCKFILE=/var/lock/subsys/$prog

start() {
        echo -n "Starting $prog: "
        daemon --user transmission transmission-daemon
        sleep 2
        status $prog &> /dev/null && echo_success || echo_failure
        RETVAL=$?

                if [ $RETVAL -eq 0 ]; then
                        touch $DAEMON_LOCKFILE
                        pidof -o %PPID -x $prog > $DAEMON_PIDFILE
                fi

        echo
        #return
}
stop() {
        echo -n "Shutting down $prog: "
        killproc $prog
        RETVAL=$?

        [ $RETVAL -eq 0 ] && /bin/rm -f $DAEMON_LOCKFILE $DAEMON_PIDFILE

        echo
        #return
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status $prog
       ;;
    restart)
        stop
        start
        ;;
#    reload)
#
#       ;;
#    condrestart)
#
#       [ -f /var/lock/subsys/ ] && restart || :
#    probe)
#
#       ;;
    *)
        echo "Usage: $prog {start|stop|status|reload|restart[|probe]"
        exit 1
        ;;
esac
exit $?


このスクリプトは随時更新します。

2014年1月4日土曜日

CentOS6.5 + samba4 TestInstall

0.  仮想PCへテストインストール

仮想PCの準備 - VirtualBox

CentOS6.5 CDイメージのダウンロードです。トップページはここ。
http://www.centos.org/

フルインストールしませんので、networkインストールイメージです。
CentOS-6.5-x86_64-netinstall.iso
とかいうやつです。243M。
CentOS-6.5-x86_64-minimal.iso
とかでもOKだと思いますが、試してません。おそらくスタンドアロンインストール用。



ここではVirtualBoxを使用します。
VirtualBoxのインストール、取り扱いは省略します。

VirtualBoxを起動し、「新規(N)」で新たな仮想マシンを作成します。「仮想マシンの作成」ダイアログが出ます。




「タイプ」はLinuxを、「バージョン」はRed Hat (64bit)」を選択し、「次へ」。



メモリーサイズは1G~2GBくらいかな。適当です。実機に合わせてください。






インストール先の仮想ディスク作成のダイアログになります。これも適当に名前を付け、サイズ指定します。8GBもあれば十分。可変でOK。




設定画面になります。必要な設定は「ストレージ」「ネットワーク」です。

「ストレージ」は先ほど作成した仮想ディスクがSATAに自動的に割り当てられています。IDEには先ほどダウンロードした「CentOS6.5 ISO ディスクイメージ」を指定してください。
「IDEセカンダリマスタ」とあるプルダウンの右のCDアイコンをクリックするとISOイメージを選択できます。
赤丸の部分ですよ。

「ネットワーク」は 「ブリッジ」でOKです。仮想マシンへ実IPを割り当てる方式です。

ただし、ホストPC(Virtulboxを実行しているPC)のネットワークに「VirtualBox Host-Only Ethernet Adapter」が存在し、「インターネット共有」をしている場合は「ブリッジ」ではなく「ホストオンリーアダプター」にしてください。
「ブリッジ」の設定にすると、インターネット共有で仮想PCに割り当てるIPが「実IP」と一致できなくなります。つまり仮想PCがインターネットできなくなると。


あとは適当にオーディオをオフにする、くらいかな。




CentOS6.5のインストール

で、「起動(T)」します。ダブルクリックでもOK。


おう、なんか変わってますね。
「Install system with basic video driver」でOKです。




「メディアテストするか?」は「Skip」で。






「Choose a language」は「Japanease」を、「Keyboard Type」は「jp106」を選択します。キーボードの「j」キーを押すと一発で出てくるよ。






「installation Method」は「URL」で、「Configure TCP/IP」では「Enable・・・」のまえの*はスペースキーで付けたり消したりできます。上はIPv4、DHCPを選んでます。






「URL Setup」でインストールするイメージのURLを入力します。
が!
URLに注意です。
/isos/ を /os/ に変更してください。
イメージ先はどこでもOKなはず。




まぁできないときはタイプミスですかねぇ。
最後のスラッシュはいらないよ。




上手くつながるとマウスカーソルが動く、上のような画面になります。「次へ」。


インストール先を選択します。普通は上ですね。
「データが入ってても知らないよ、」と言われますが気にしません。

ホスト名とネットワーク設定の画面です。固定IPにするならここで「ネットワークの設定」を。



 ここはDHCPにしてありますが、仮想PCだからです。のちのち実機に移行するならIP固定してください。
 次の画面は「タイムゾーン」です。勝手に「アジア/東京」になってます。

「次へ」。



「root」パスワードです。centosにしたら「弱いよ!」って言われますが「とにかく使う」を選びました。




次はディスクレイアウトです。まぁ適当に。下の「パーティションのレイアウトをレビューまたは修正する」にチェックしておきます。





で、8GBのディスクを「すべての領域を使用する」にすると上のようになります。LVMを使うんですね。詳しくないけど。

あとは次へ次へでOKです。
インストールする構成を選択できます。





ネットワーキングツールぐらいはチェックで。
「次へ」でインストールが始まります。
インストールが終わると



「おめでとうございます」あんまりうれしくないけど。
メディアは出しておいてから再起動で。
VirtualBoxの設定から、CDを抜き取る=「デバイス」→「CD/DVDデバイス」→「仮想ドライブからディスクを除去」を選択です。




無事にインストールが完了したようです。

ユーザ名、パスワードの順に入力して下さい。


ちなみにシャットダウンは


[root@centos ~]#  shutdown -h now


です。お忘れなく。