Webサーバを構築する その1

ゲストOSにApacheをインストール〜設定をします。

といってもServerパッケージでOSを構築しているので、個別にインストールする必要はありません。

ファイアウォールが有効になっている場合、ポートを空けてやる必要があります。

[root]# vi /etc/sysconfig/iptables
#80、443のポートを受け付ける
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -s 192.168.1.10 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -s 192.168.1.10 -j ACCEPT
#ファイアウォールを再起動する
[root]# /etc/init.d/iptables restart

Apacheの設定ファイルを変更します。
設定する項目はたくさんありますが、まずはサーバ名を変更しておきます。

[root]# vi /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
↓
ServerName 192.168.1.14:80
[root]# service httpd start

ゲストOSのクローン

クローンなんつってもただのファイルコピーであります。
ここをみれば詳しいことが。

ゲストOSを停止する

ホストOSのコンソールからxmコマンドでゲストOSを停止します。

[root@xen ~]# xm destroy cos1
[root@xen ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      994     1 r-----   1019.1
ゲストOSのファイルをコピーする

ゲストOS作成時に指定したイメージファイルをコピーします。
ディスクの空き容量がちゃんと足りているか確認しましょうね。

[root]# cp -p cos1.img cos2.img
定義ファイルを作成する

/etc/xen/ディレクトリに定義ファイルがあります。
ゲストOSの名前のファイルとなっていますので、コピーして編集します。
ここではname、uuid、vif、diskを変更する必要があります。
uuidは「uuidgen」コマンドでユニークなIDを作ることが出来ます。

[root]# uuidgen

vifはスクリプトで生成します。

[root]# vi macgen.py
#! /usr/bin/python
# macgen.py script generates a MAC address for Xen guests

import random
mac = [ 0x00, 0x16, 0x3e,           <-- 実際のMACアドレスの上位3オクテット(ベンダーID)を指定します。
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
print ':'.join(map(lambda x: "%02x" % x, mac))

実行権限をつけて、スクリプトを実行します。

[root]# chmod +x macgen.py
[root]# ./macgen.py

コピーして、エディタで変更してください。

[root]# cp -p cos1.img cos2.img
[root]# vi cos2
name = "cos2"   <-- 修正
uuid = "c121db9d-6016-4ee5-a75f-f28b5352822f"   <-- 修正
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [  ]
disk = [ "tap:aio:/var/lib/xen/images/cos2.img,xvda,w" ]   <-- 修正
vif = [ "mac=00:16:3e:60:cf:c4,bridge=xenbr0" ]   <-- 修正

「xm create」コマンドで新規ドメインを作成して完了です。

[root@xen xen]# xm create cos2
Using config file "./cos2".
Started domain cos1

ゲストOS上のホスト名、IPアドレス等についてはネットワーク環境によって変更する必要が発生することもありますが、DHCP使ってる場合は特に必要ありません。

仮想環境のちょっとした設定変更をする

ホストOSにログインして、Xenの状況を確認してみる。

[root@xen ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      994     1 r-----    472.1
cos1                                       2      255     1 -b----     43.3

「cos1」が作成したゲストOSです。

ゲストOSを自動起動するには、設定ファイルを/etc/xen/autoしたに配置すればOKです。

コピーするか

[root]# cp -p /etc/xen/cos1 /etc/xen/auto/

シンボリックリンクをはります。

[root]# ln -s /etc/xen/cos1 /etc/xen/auto/cos1

Xen@CentOSで仮想サーバを構築する

ググってみたところ、何気にXenで仮想環境をつくるのも簡単そうである。
便利な世の中になったものです。

まずはホストOSをインストール

CentOSをインストールします。
さくっと簡単にインストールできます。本当に便利な世の中です。

インストールパッケージは下記を選択しました。

Gnomeは別にいらない気もするけど、ホストOSなんであったほうが何かしら便利かも知れないという安易な考え。

よくわからん人はhttp://centossrv.com/centos5.shtml見るがいいw
別に笑うとこじゃないですが。


・・・猫たちが喧嘩はじめた。騒がしい・・・。

ゲストOSをインストール

ホストOSのインストールが完了して、ネットワークがちゃんとつながりましたら、早速XenでゲストOSを構築してみます。

  1. Xenの稼動状況を確認する。
[root]# xm list
  Name                      ID Mem(MiB) VCPUs State   Time(s)
  Domain-0                   0     1095     1 r-----    131.2

Stateの"r"はRunning。はい。動いてますね。

  1. ゲストOSをインストールする。

いろいろ聞かれますので、適当に入力します。

[root]# virt-install --nographics
仮想マシンの名前は何ですか? cos1
 どれだけの RAM を割り当てますか (メガバイト単位で)? 128
 エラー: インストールには現在 256 メガの RAM が必要です。

どれだけの RAM を割り当てますか (メガバイト単位で)? 256
 What would you like to use as the disk (file path)? /var/lib/xen/images/cos1.img
 どの位の大きさのディスク (/var/lib/xen/images/cos1.img) にしたいですか(ギガバイト単位で)? 12
 インストール場所は何ですか? http://ftp.riken.jp/Linux/centos/5.3/os/i386/
インストールを開始しています...

多少時間がかかりますが、あっけにとられるほど簡単に終わります。

参考URL
Xenユーザーズマニュアル日本語版2.0
http://itpro.nikkeibp.co.jp/article/COLUMN/20080205/293099/?ST=lin-os
※参考URLで使用されているCentOSのバージョンは4.x系だが、最新版の5.3を使う。
http://d.hatena.ne.jp/rdera/searchdiary?word=*[xen]
http://d.hatena.ne.jp/tacke/20090813/1250183942

開発環境構築ことはじめ

しばらく家で勉強することもなくなり、いい加減スキル的な貯金も通用しなくなってきたような気がするので、5年振りくらいに自宅にサーバをおったてようと思います。

まず、手始めにCentOS上にXenを入れて、2台くらいゲストOSをおったてみることにしよう。


それにしても最近のLinuxってホント簡単にインストールできるのね。。。