読者です 読者をやめる 読者になる 読者になる
演習Index

環境構築(仮想化ソフトウェア、サーバーOS)

ソフトウェアの入手

以下のものを入手してください。

 

 Oracle VM VirtualBoxのインストール

 デフォルトインストールしてください。VirtualBox Networkingの機能は必要です(デフォルトでインストールされるはず)。

 

f:id:wave1008:20170206054602p:plain

 

 

仮想マシンのセットアップ(server1)

  1. VirtualBoxマネージャーで[新規]をクリックします。
  2. 仮想マシンの名前、バージョン、メモリサイズを入力します。

    f:id:wave1008:20170206055103p:plain

  3.  ファイルサイズを指定しますが、20GBだと不安なので可変サイズで100GBくらいにしておけば安心です。

    f:id:wave1008:20170206055347p:plain

  4. 仮想マシンが作成されました。引き続き、[設定]をクリックします。f:id:wave1008:20170206055958p:plain

  5. クリップボードは双方向にしておくと便利です。

    f:id:wave1008:20170206060252p:plain

  6. 仮想マシンも快適に動作してほしいので、プロセッサー数は1つではなく2つくらいにしておきましょう。ただし割り当てが多すぎるとシステム全体のパフォーマンスが悪くなるのでやめましょう。

    f:id:wave1008:20170206060441p:plain

  7. ネットワークの設定は後で変更しますが、インストール時はNATを有効にしましょう。

    f:id:wave1008:20170206060756p:plain

  8. ホストOSと仮想マシンの間でデータをやりとりするために、共有フォルダを設定しましょう。

    f:id:wave1008:20170206062430p:plain

  9. OSのインストールイメージ(ISOファイル)を仮想マシンのストレージに光学ドライブとして追加しましょう。

    f:id:wave1008:20170206062630p:plain

  10. [OK]をクリックして設定を完了します。

     

     

     

  11. 仮想マシンを起動します。f:id:wave1008:20170206062756p:plain

  12. 設定が自分の環境にあっているかを確認して[次へ]をクリックします。

    f:id:wave1008:20170206062859p:plain

  13. Standard Evaluationデスクトップエクスペリエンスを選択して[次へ]をクリックします。f:id:wave1008:20170206062924p:plain

  14. [次へ]をクリックします。

    f:id:wave1008:20170206063057p:plain

  15.  カスタムを選択します。

    f:id:wave1008:20170206063352p:plain

  16.  [次へ]をクリックします。

    f:id:wave1008:20170206103613p:plain

  17. インストールが開始します。

    f:id:wave1008:20170206063425p:plain

  18.  Administratorのパスワードを設定します。

    f:id:wave1008:20170206063459p:plain

  19. ログオンします。

  20. [いいえ]を選択します。

    f:id:wave1008:20170206063544p:plain

  21.  VirtualBox Guest AddinsのCDイメージを仮想マシンに挿入します。これを入れるとホストOSとゲストOSの間でいろいろ便利な機能が利用できるようになります。 

    f:id:wave1008:20170206063722p:plain

  22.  VBoxWindowsAdditionsをダブルクリックしてインストールします。

    f:id:wave1008:20170206063905p:plain

  23.  インストール後に再起動します。

    f:id:wave1008:20170206064204p:plain

  24.   ホストキー+Delでログオン画面を表示します。うまくいかない場合はメニューから入力>キーボード>送信 Ctrl-Alt-Delを選択します。

    f:id:wave1008:20170206064917p:plain

  25.  [システム]を開いて、コンピューター名を変更します。

    f:id:wave1008:20170206101703p:plain

  26.  コンピューター名を設定後、再起動します。

    f:id:wave1008:20170206101834p:plain

  27. Windowsをシャットダウンし、仮想マシンのストレージの設定でOSのインストールイメージの割当を除去します。

     

 Chrome, Firefoxのインストール

OSインストール直後はIEしか利用できませんが、演習では複数ブラウザを利用するので、ChromeFirefoxをインストールしてください。IEのセキュリティ構成でダウンロードがブロックされる場合は、ブロックされたサイトを信頼済サイトに追加してください。

f:id:wave1008:20170206102227p:plain

 

 

仮想マシンのセットアップ(server2)

server1のセットアップと同じ手順でserver2をセットアップしてください。

※server1をserver2に読み替えること。

※知識がある人はserver1の仮想マシンのクローンを作成し、コンピューター名を変更する方法でもOK。 

 

 

 

演習用ネットワーク環境A

演習用ネットワーク環境A

以下のネットワークを仮想環境上に構築します。

 

f:id:wave1008:20170206174416p:plain

 

 

network1

仮想環境内部で実現するLANです。VirtualBoxネットワークアダプタ内部ネットワークを利用して実現します。このネットワークに接続したホスト間で通信することを目的としています。この内部ネットワークはインターネットやホストOSと直接接続していません。

 

server1

IISによってWebサーバーの役割を実現します。

server2

Webサーバー以外のサーバーの役割を実現します。DHCPDNS、AD CSなどのサービスを提供します。

client1

クライアントPCの役割を実現します。

 

 

演習環境について

演習で使用するハードウェア・ソフトウェアは以下のものです。いろいろ書いていますが、高めのスペックのPCが1台と、インターネット環境があればOKです。

ハードウェア・OS

 

演習中に追加インストールするソフトウェア

 

演習中に構成するWindows Serverの機能

 

意欲はあるけど、どこから勉強したらよいのかわからないITエンジニアの卵たちへ

はじめに

waveです。はてなダイアリーでは過去に技術的なことを中心に日記を書いてました。

当時はSilverlightという技術に傾倒して猛烈に記事を書き続け、Microsoft技術で有名なブロガーさんたちともコラボさせてもらい、充実した日々を送っていました。Silvelightの終了とともに私のブログ熱も終了し、事実上引退していました。

 

そんなwaveが再び記事を書きたい、そういう気にさせられる出来事がありました。

 

 Silverlightからの引退後はHTMLでのアプリケーション開発をしており、Webのテストの自動化に興味を持っていろいろ試行錯誤してました。Selenium(Web Driver)が実用的になりはじめていましたが、所詮はブラウザを操作するエンジンに過ぎず、まだまだ実際の開発現場でテストに使うには非効率でした。そこでWeb Driverをラップした独自のライブラリを開発し、考えられるだけの効率化を施し、自社製品の結合テストに適用する手前までこぎ着けました。しかし、現状の開発チームの人的リソースでさらにテストの自動化をやるのはなかなか難しいという問題がありました。

 

そこで、入社してからまだ数年経っていない若手に白羽の矢が立ちました。早速、お手製のライブラリやら、テストの作成の仕方をまとめた資料を読んでもらって、ミーティングを行いました。

 

どう?できそう?

 

そう言われた若手たちはポカーンとしていました。彼らはプログラミング経験がほぼない状態で入社し、研修を受けたもののの、開発経験はほぼゼロだったのです。ウルトラマニアックなオレオレライブラリによる自動テストの話など、いきなり理解できるわけがありません。それ以前に、研修内容もC/C++/C#のデスクトップ開発の話に限定されており、Webアプリケーションがどのような仕組みなのか、理解がなかったのです。

 

これはまずいと思いました。彼らには基礎がない。でも自分はどうやって基礎を身に着けたんだっけ?そういえば自分が社会人になったときは大手SIerで至れり尽くせりの研修を受け、コンピューターやネットワークの基礎を学ぶことができてました。でも、在籍中の会社の規模では大手のように手厚い研修は望めません。基礎もなくコード書きの仕事ばかりやっていると、いろいろな弊害が出てしまいます。その場その場で検索して答えを見つけることができたとしても、システムを設計するための応用力がつきません。

 

彼らにWebアプリケーションを理解してもらい、Webテストの自動化を遂行してもらうのに必要な前提スキルを身に着けてもらう、何かいい方法はないだろうか。少し悩んで、こう考えました。

  • Webアプリケーションはクライアントサイド(HTML/CSS/JavaScript)とサーバーサイドで構成されているが、今回の目的ではクライアントサイド+サーバーとのインターフェースを中心に理解すればよい。
  • インターフェースの中核はHTTPプロトコルである。そしてその基盤となる技術体系はTCP/IPである。
  • Webアプリケーションはインターネット上の分散システムであり、関わりの深いDNS認証局の知識は必要。

しかし、そういうことはどのようにして身につければよいでしょうか。座学だけじゃ頭でっかちになるだけで身につかないから、実機演習は必須です。でも、問題は演習環境です。一昔前なら安物のPCをたくさん手に入れてLANケーブルで繋いで物理的なネットワークを構築するところですが、いろいろと大変です。演習する人数分そろえたらエライことになります。

 

すばらしいことに、最近のPCはプロセッサのコア数、メモリ量とも充実し、ハードウェア仮想化技術の支援もあって仮想マシンを複数同時に動かしてもわりとストレスなく動作するようになりました。SSD搭載ならものの数秒でWindowsが起動するくらい猛烈に快適です。

あとはOSなどのソフトウェアですが、都合上Windowsを使います。開発者としてMSDNライセンスを割り当てられていれば問題なく入手できますし、ない場合は評価版を利用することで代用できます。

 

このような経緯から、仮想環境を利用し、OSのインストール、WebサーバーやDNSのセットアップ、Webアプリケーションの作成などを演習することにしました。

おそらく研修を行っているところでは、今では演習に仮想環境を利用していることでしょう。そして、このようなコンテンツも門外不出で存在していることでしょう。しかし、知識は共有されるべきです。waveは自分のブログでコンテンツを作成して公開してしまおうと思います。そのほうが面白いですよね。

  

これから作成して投稿するコンテンツは、インターネットの情報の波と向かい合い、意欲はあるけど、どこから勉強したらわからない。そのようなITエンジニアの卵たちへ捧げます

 

なお、コンテンツは新たにブログ向けに書き下ろします。

 

このシリーズの使い方

  • 実機演習を前提としています。さらっと読むだけでも無意味ではないですが、自分で手を動かしていろいろ考えてアウトプットすることに意義があります。一度アウトプットを経験すれば2回目以降はさらっとアウトプットできます。そんなもんです。
  • ソフトは無償利用可能なものを使用しますので、いまどきのスペックのPC(メモリは多めに必要)が1台あれば自宅で演習できます。会社でお給料をもらっている時間だけでなく、自分が自由にできる時間で好きなようにやってください。
  • 学習する上で、すでに世の中に存在する優れた記事を活用します。wave自身も勉強しながら記事を書きます。理解すべきキーワードやポイントを示した上でそこへのリンクを貼ります。もちろん興味がわけばその記事をまるっと読んだり、わからないキーワードをどんどん検索したりしてて、理解を深めてください。

想定するターゲット

いちおう入社して1,2年くらい経過して多少なりとも現場経験がある若手を想定しているので、OSインストールしたり、コマンドプロンプトping打って疎通確認したりすることはできることを前提としています。作業したことはあるけど、原理はようわからん、という感じでしょうか。割とベテランなwaveですが、自分が勉強しながら面白いと思ったことを整理して書くので、たぶんベテランでも面白いと思います。

その他もろもろのポリシー

  • 気に入っていただけたら、記事へのリンクは自由に貼ってください。
  • 記事に誤りを見つけたら、クレーム入れてください。すぐに返信できないかもしれませんが、できる範囲で改善を試みます。コメントで結構です。コメントだとやりにくい場合はwave1008@gmail.comへどうぞ。
  • ブログなので日付つきの記事になりますが、内容は随時アップデートします。変更履歴は原則として重要な内容のみ(誤りの訂正など)を明記しますが、それ以外はwaveの気分次第で自由に更新してしまいます。この前と変わってる!とクレーム入れないように。