2013年1月7日月曜日

OVMS をKickstart (2回目)

今回は、まず Kickstart サーバを構築します。

前回はこちら。



1. 事前準備

Oracle Linux 6.3 をインストールしたサーバを用意しておきます。
※これは、VortualBox 上の VM でも OK です。

下記のIPアドレスを設定をしておくことにします。
  • eth0: 192.168.56.110 → このサーバへの通常アクセス用。
  • eth1: 192.168.10.110 → Kickstart 用の NW に接続しておく。

2. DVD イメージのマウント

今回は、Oracle Linux 6.3 のインストールメディア (DVD イメージ) に入っている RPM を使用します。
[root@ks1 ~]# mount /dev/cdrom  /media
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
[root@ks1 ~]# ls /media/
EFI               README-en.html                RPM-GPG-KEY         eula.en_US
EULA              RELEASE-NOTES-en              RPM-GPG-KEY-oracle  eula.py
GPL               RELEASE-NOTES-en.html         ResilientStorage    images
HighAvailability  RELEASE-NOTES-x86-en          ScalableFileSystem  isolinux
LoadBalancer      RELEASE-NOTES-x86-en.html     Server              media.repo
Packages          RELEASE-NOTES-x86_64-en       TRANS.TBL           repodata
README-en         RELEASE-NOTES-x86_64-en.html  UEK2                supportinfo
3. YUM リポジトリの設定

yum コマンドが、DVD にある RPM を探してインストールするように設定します。
デフォルトで入っていた Oracle の パブリック Yum リポジトリの設定は、
今回は使用しないので参照しないようにしています。
[root@ks1 ~]# mv /etc/yum.repos.d/public-yum-ol6.repo /etc/yum.repos.d/public-yum-ol6.repo_bk
[root@ks1 ~]# vi /etc/yum.repos.d/dvd.repo

(下記を記載)
[OEL63-dvd-Server]
name=OEL63-dvd-Server
baseurl=file:///media/Server
gpgcheck=0
enabled=1

DVD を参照できるようになったことを確認しておきます。
[root@ks1 ~]# yum repolist
Loaded plugins: refresh-packagekit, security
OEL63-dvd-Server                              | 3.7 kB     00:00 ...
OEL63-dvd-Server/primary_db                   | 2.9 MB     00:00 ...
repo id                     repo name                          status
OEL63-dvd-Server            OEL63-dvd-Server                   3,563

4. PRM のインストール

Kickstart サーバとして、下記の RPM パッケージをインストールします。
今回使用する RPM パッケージは、すべてインストール DVD に入っています。
※ tftp は、tftp-server の動作確認のためだけに使用します。
[root@ks1 ~]# yum list dhcp syslinux tftp-server tftp httpd
Loaded plugins: refresh-packagekit, security
Installed Packages
httpd.x86_64       2.2.15-15.0.1.el6_2.1  @anaconda-OracleLinuxServer-201206261930.x86_64/6.3
Available Packages
dhcp.x86_64        12:4.1.1-31.P1.0.1.el6 OEL63-dvd-Server
syslinux.x86_64    4.02-7.el6             OEL63-dvd-Server
tftp.x86_64        0.49-7.el6             OEL63-dvd-Server
tftp-server.x86_64 0.49-7.el6             OEL63-dvd-Server

5. インストール実施

RPM を yum コマンドでインストールします。
「-y」 をつけて、あらかじめインストール中の確認メッセージに yes と答えています。
※途中経過は、長いので小さくしています・・・
[root@ks1 ~]# yum install -y dhcp syslinux tftp-server tftp httpd
Loaded plugins: refresh-packagekit, security

Setting up Install Process
Package httpd-2.2.15-15.0.1.el6_2.1.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package dhcp.x86_64 12:4.1.1-31.P1.0.1.el6 will be installed
---> Package syslinux.x86_64 0:4.02-7.el6 will be installed
---> Package tftp.x86_64 0:0.49-7.el6 will be installed
---> Package tftp-server.x86_64 0:0.49-7.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================
 Package         Arch       Version                      Repository            Size
====================================================================================

Installing:

 dhcp            x86_64     12:4.1.1-31.P1.0.1.el6       OEL63-dvd-Server     816 k
 syslinux        x86_64     4.02-7.el6                   OEL63-dvd-Server     858 k
 tftp            x86_64     0.49-7.el6                   OEL63-dvd-Server      31 k
 tftp-server     x86_64     0.49-7.el6                   OEL63-dvd-Server      39 k
Transaction Summary
====================================================================================
Install       4 Package(s)
Total download size: 1.7 M
Installed size: 4.0 M
Downloading Packages:
------------------------------------------------------------------------------------
Total                                               7.0 MB/s | 1.7 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : tftp-0.49-7.el6.x86_64                                           1/4
  Installing : 12:dhcp-4.1.1-31.P1.0.1.el6.x86_64                               2/4
  Installing : tftp-server-0.49-7.el6.x86_64                                    3/4
  Installing : syslinux-4.02-7.el6.x86_64                                       4/4
  Verifying  : syslinux-4.02-7.el6.x86_64                                       1/4
  Verifying  : tftp-server-0.49-7.el6.x86_64                                    2/4
  Verifying  : 12:dhcp-4.1.1-31.P1.0.1.el6.x86_64                               3/4
  Verifying  : tftp-0.49-7.el6.x86_64                                           4/4
Installed:
  dhcp.x86_64 12:4.1.1-31.P1.0.1.el6         syslinux.x86_64 0:4.02-7.el6
  tftp.x86_64 0:0.49-7.el6                   tftp-server.x86_64 0:0.49-7.el6

Complete!


6. DVD イメージをアンマウントしておきます。

[root@ks1 ~]# umount /media/


7. DHCP サーバの設定と起動

DHCP で自動設定する IP アドレスは、
PXE ブートの起動イメージを読み込むネットワークセグメントのものです。
今回は、192.168.10.0/24 の IP アドレスを設定しています。

next-server は、PXE ブートで使用するファイルをもつ TFTP サーバです。
たいてい DHCP サーバと同じサーバで、今回もこのサーバ自身にしました。
filename には、PXE ブートで使用するファイル名「pxelinux.0」を指定します。
これが TFTP サーバから取得するファイルで、
サーバ起動で使用するブートローダと呼ばれるファイルです。
[root@ks1 ~]# vi /etc/dhcp/dhcpd.conf

(下記を記載)
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.1 192.168.10.9;
  next-server 192.168.10.110;
  filename "pxelinux.0";
}

DHCP サーバの自動起動の設定を変更しておきます。
[root@ks1 ~]# chkconfig --list dhcpd
dhcpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@ks1 ~]# chkconfig dhcpd on  ★DHCP自動起動ON
[root@ks1 ~]# chkconfig --list dhcpd
dhcpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

DHCP サーバを起動します。
[root@ks1 ~]# service dhcpd start
dhcpd を起動中:                                            [  OK  ]
[root@ks1 ~]# ps ax | grep dhcp
 1921 ?        Ss     0:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd
 1965 pts/0    S+     0:00 grep dhcp


8. TFTP サーバの設定と起動

Oracle Linux 6.x の TFTP サーバは、デフォルトでは xinetd で管理されています。
xinetd の設定ファイルを編集して、tftp サービスを有効化します。

TFTP のファイル格納ディレクトリはデフォルトのまま(/var/lib/tftpboot)です。
[root@ks1 ~]# vi /etc/xinetd.d/tftp
server_args = -s /var/lib/tftpboot
disable = yes
↓(編集)
server_args = -s /var/lib/tftpboot
disable = no   ★変更する

TFTP サーバを有効化するため、xinetd サービスを再起動します。
[root@ks1 ~]# chkconfig --list xinetd
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@ks1 ~]# chkconfig --list tftp
tftp            on   ★「on」になっているが再起動するまで有効ではない
[root@ks1 ~]# service xinetd restart
xinetd を停止中:                                           [  OK  ]
xinetd を起動中:                                           [  OK  ]


9. PXE ブート用ファイルを配置

syslinux の RPM に含まれる PXE ブート用のファイルを
TFTP サーバのディレクトリに配置します。
[root@ks1 ~]# cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@ks1 ~]# cp -p /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
[root@ks1 ~]# cp -p /usr/share/syslinux/chain.c32 /var/lib/tftpboot/

TFTP サーバからファイルを get できることを確認しておきます。
[root@ks1 ~]# mkdir work
[root@ks1 ~]# cd work/
[root@ks1 work]# ls
[root@ks1 work]# tftp -4 192.168.10.110 -c get pxelinux.0
[root@ks1 work]# ls -l
合計 28
-rw-r--r--. 1 root root 26828 1月 6 08:10 2013 pxelinux.0


10. PXE ブート用の設定ファイル作成

PXE ブートをした時の起動メニューになるファイルを記載します。
今回は、メニューを2つ作ってあります。
  • 「 1. Oracle VM Server 2.2.2 」
    → OVS2.2.2をインストールします。
  • 「 2. Local boot [on-timeout Default] 」
    → インストーラを起動せず、サーバのローカルディスクからOSを起動します。
この時点だと、どちらのメニューもまだ機能しません。
「/ovs222/vmlinuz」「/ovs222/initrd.img」「http://192.168.10.110/ks/ovs222_ks.cfg」
といったファイルは、まだ準備できていませんが記載しておきます。
[root@ks1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@ks1 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

(下記を記載)
DEFAULT menu.c32
PROMPT 0
TIMEOUT 200
ONTIMEOUT LOCAL
MENU TITLE Oracle VM Server Install Menu

LABEL OVS222
  MENU LABEL ^1. Oracle VM Server 2.2.2
  MENU DEFAULT
  KERNEL /ovs222/vmlinuz
  APPEND initrd=/ovs222/initrd.img ks=http://192.168.10.110/ks/ovs222_ks.cfg ksdevice=eth0
LABEL LOCAL
  MENU LABEL ^2. Local boot [on-timeout Default]
  KERNEL chain.c32
  APPEND hd0

11. ファイアウォールの無効化

Kickstart サーバのファイアウォールはすべて無効にしておきます。
(お試し環境なので)
[root@ks1 work]# chkconfig --list iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@ks1 work]# chkconfig iptables off  ★FWの自動起動OFF
[root@ks1 work]# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@ks1 work]# service iptables stop  ★FW停止
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]

以上、まずはKickstart用サーバの構築でした。
つづく


0 件のコメント:

コメントを投稿