FreeBSD OS インストール直後の状態を、バッチファイルにより短時間でセットアップ完了させることを考えています。
FreeBSD OS に限らず、最近のOSインストール作業はインストールプログラムの指示に従って選択して行くだけなので割と簡単に終了します。単独OSのクリーンインストールならば悩むことは殆どなでしょう。
それに対し、OSインストールが終了したのち、OSが実際に目的の役割を果たせるようにカスタマイズするには、
- アプリケーションプログラムのインストール
- 作業アカウントの設置
- セキュリティーの強化
- ロギングの設定
- 作業用ユーティリティのインストールや設定
など、インストール作業よりも遙かに大変です。
企業などの最初から目的が決まっているホストを構築する場合は、手順書を準備して作業項目を一つ一つこなしてゆきますので1台だけなら時間が掛かる割には比較的単純な作業です。
私の場合、WordPress 環境を構築することがそれにあたります。手順は決まっているものの、意外と時間が掛かります。3年前から、テスト環境は仮想マシン(VM)上で構築できるようにしてあるので、仮想だけで済む場合は作業自体は簡単です(が、時間はそれなりに掛かる)。最終的に実マシンを構築する時は、再び一からの作業となり、時々作業手順が変わってしまうので、一日以上の作業工数となり結構大変です。(パッケージが廃止されて別のものに置き換わったり、セキュリティー対策方法が変更になっていたり、理由は色々。)
仮想で済む場合でも、構築済みWodpress サーバーの環境は時間の経過毎に古くなっていますから、(外部公開しない場合は無理に行う必要はありませんが)OSとアプリケーションの更新をしています。更新作業に費やす時間はVMイメージ製作から時間が経つごとにどんどん長くなり、1,2時間必要になります。更新後のVMディスクを保存しておけばいいわけですが、1) 素の状態でなくなりテスト環境として成り立たない場合がある、2) 保存するVMイメージがどんどん巨大になる という欠点があります。時々、最新環境で作り直しておけばいいのですが、それはそれで手間です。
どこかに、OSインストール後に必要なセットアップを自動的にある程度完成させてくれるツールがないものかと検索してみたのですが、残念ながら見つけることは出来ず。OSインストールを自動化するというツールや記事は色々見つかったのですけどね。
今年、Raspberry Pi2 を購入してから、ラズパイ上で FreeBSD を動かすことを楽しみにしていました。ようやく Raspberry Pi 2対応の FreeBSD11 がリリースされ、これをサーバーとして使ってみることが出来るようになりました。FreeBSD11 for pi2 インストール作業は、x86実マシンへのインストールとVM上でFreeBSD仮想イメージを動かす場合の中間にあたります。
- 仮想マシンイメージ: OSインストール(初期サービス無し、初期アカウント無し)
- FreeBSD11 fro Raspberry Pi:OSインストール + rootカウントのみ (初期サービスなし)
- 実マシンへのセットアップ:OSインストール + 初期サービス + 初期アカウント + 初期パッケージ
無いなら自分で作ってしまえ と、いい機会だから素の FreeBSD をコマンドファイル(バッチファイル)でセットアップ完了できるようにしてみようと考えているところです。ターゲットは、FreeBSD をVMおよび実機へインストールして、WordPress Webサーバー としてレディー状態になるところまで。
2nd ステップとして、ファイヤーウォール、アクセスコントロール、ロギングとログローテーション、OSとパッケージの自動更新。オプションとして、X-Window や ラジコ自動録音 あたりが出来ないものかと考えています。(ラジコはちょっと難しいか!)
汎用化できる部分が、WordPress Ready まで達したので、ここに公開することにします。
WordPress for FreeBSD11 自動セットアップ
前提条件
- FreeBSD でなくてもよいので多少は Unix や Linux OS を理解していること。
- コマンドタイプすることに抵抗がないこと。MacOS のターミナルや Windows のコマンドプロンプト・DOS窓や PowerShell が使えるレベルなら問題なし。GUIによる設定箇所はありません。
- 現時点では、WordPress テスト環境であること。グローバルネットには公開しないこと。(セキュリティー強化が全くなされていないためです。グローバル公開したら一発で乗っ取られます。)
- 今のところ、FreeBSD11(i386) のみ。作業開始直後なので我慢して。
- 接続ネットワークにIPv4の DHCPサーバーとDNSサーバーがあり自動的にIPアドレスとホスト名を取れること。
WordPress を無料で自由に使うプライベートテスト環境を作るだけですが、パソコン初心者の手には負えないでしょう。本来このメモがターゲットにしている、Webデザイナーの方に出来るなら幸いです。
作業の流れ
- Oracle VirtualBox (または好みの仮想化アプリケーション)をダウンロードしてインストールする。
- FreeBSD11 i386 版イメージ FreeBSD-11.0-RELEASE-i386.vhd.xz をダウンロードする。
- ダウンロードした .xz VMイメージファイルを解凍する。
- 仮想 FreeBSD11 をセットアップ。
- 仮想FreeBSD11 のネットワークを有効にする。
- 自動セットアップを当サイトからダウンロードして展開
- セットアップスクリプトを実行。
という流れになります。別の書き方をすると、
- FreeBSD ダウンロードサイトから、仮想ドライブをダウンロードして解凍する。
- ダウンロードした仮想ドライブからOSを起動する。
- 簡単な「コマンドタイプ」と リブートを 2 回すると、WordPress が使えるようになっている。
というものです。
具体的な作業
VirtualBox のダウンロードとインストール
すでに仮想化アプリケーション導入済みであれば特に VirtualBox を選択する必要はありません。仮想化アプリケーションを所有していない場合、VirtualBox は無料で導入できますのでお薦めです。これをダウンロードしてインストール。
VirtualBox は最新バージョン 5.1 でも 5.0系でもOK。使用するOSに応じたものをダウンロードのこと。
ホストOSは、MacでもWindowsでも、32bit版でも64bit版でも、ProでもHomeでもOK。私は、64bit Windows10 Pro と 32bit Windows10 Home(Intel Compute Stick) で動作確認済み。
VirtualBox 以外のVMを使用する場合、NICのドライバが em0 以外になる可能性があるので、その場合は各自で編集すること。
FreeBSD 仮想ディスクをダウンロード
FreeBSD ミラー ftp サイトから、vhd 形式 FreeBSD i386 仮想ディスクイメージをダウンロード。または、使用する仮想化アプリケーションがサポートしている vmdk 形式や raw形式のファイルをダウンロードしても構いません。
amd64 版仮想ディスクでも動くとは思いますが、現時点では動作確認していません。
仮想ディスクの解凍
仮想ディスクは、.xz 形式で圧縮されているため、Windows の標準展開ツールでは解凍できません。
Linux や FreeBSD でダウンロード、解凍したものを Windows にコピーするか、7-zip をインストールして、解凍(展開)するのがおすすめ。
仮想 FreeBSD11 をセットアップ
- Virtualbox を起動して FreeBSD11 を新規登録します。
ポイントは、- ネットワークをブリッジインタフェースにすること。
これで、ホストOSがつながっているネットワークからIPアドレスを貰えます。 - 割り当てメモリをテスト用途に合わせて 512MB – 1024MBの間で適当に設定します。
一人でテストするなら 512MB で十分。 - CPUコアは、1個で十分ですが、割り当てたいなら2個以上でもOK。
- ネットワークをブリッジインタフェースにすること。
- ストレージとして、ダウンロードしてきた FreeBSD-11.0-RELEASE-i386.vhd を指定する。
VirtualBox ストレージに FreeBSD11 i386 .vhd を設定
仮想 FreeBSD11 を起動
起動ボタンを押して、仮想FreeBSD11を起動します。(以下の操作は、仮想マシン コンソール上から行うことになります。)
起動が終わると、上図のように login: プロンプトが出て来ますので、root とタイプしてでログインします。(最初は root パスワードは付いていません。)
ここまでは、自動セットアップや WordPress とは関係なく、ただの FreeBSD 利用の一バリエーションを起動しただけです。
メモが長くなってきたので、その2 に続きます。