2017年3月27日月曜日

Oracle Linux 7 で Oracle VM Server を Kickstart。

Oracle VM Server (OVMS)をインストールするため、
Oracle Linux 7 (OL7) で Kickstart 環境を構築してみました。

今回使用するバージョンは下記です。
  • Oracle VM Server 3.4.2
  • Oracle Linux 7.3 (64bit)

今回の流れは下記のような感じです。

  1. RPM インストール。
  2. DHCP サーバの起動。
  3. TFTP サーバの起動。
  4. Web サーバの起動。
  5. syslinux RPM からのファイルコピー。
  6. OVMS インストーラからのファイルコピー。
  7. PXE Boot 設定ファイルの作成。
  8. Kickstart の設定ファイルの作成。
  9. OVMS のインストール。


0. OS の準備。

Kickstart サーバのホスト名は ks02、IP アドレスは 192.168.1.116 にしました。
それとなく準備をして、RPM を最新化しておきます。
[root@localhost ~]# hostnamectl set-hostname ks02
[root@localhost ~]# nmcli c modify ens192 ipv4.addresses 192.168.1.116/24
[root@localhost ~]# nmcli c modify ens192 ipv4.method manual
[root@localhost ~]# nmcli c modify ens192 ipv4.gateway 192.168.1.1
[root@localhost ~]# nmcli c modify ens192 ipv4.dns 192.168.1.254,192.168.1.253
[root@localhost ~]# echo 'net.ipv6.conf.all.disable_ipv6 = 1' > /etc/sysctl.d/ipv6.conf
[root@localhost ~]# sed -i "s/^SELINUX=enforcing$/SELINUX=disabled/" /etc/selinux/config
[root@localhost ~]# systemctl enable chronyd
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# yum upgrade -y
[root@localhost ~]# reboot

今回は、Oracle Linux 7.3 を使用します。
[root@ks02 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.3
[root@ks02 ~]# uname -r
4.1.12-61.1.28.el7uek.x86_64


1. RPM インストール。

Kickstart 環境に必要な RPM をインストールします。
  • dhcp → PXE Boot で使用する DHCP サーバ。
  • xinetd tftp-server tftp → PXE Boot で使用する TFTP サーバと、確認用の tftp クライアント。
  • syslinux → PXE Boot のブートファイルを含む。
  • httpd → Kickstart の設定ファイルや、OVMS の RPM 群を配置する。
[root@ks02 ~]# yum install -y dhcp xinetd tftp-server tftp syslinux httpd

2. DHCP サーバの起動。

下記のように、DHCP サーバの設定ファイルを作成します。
cat << EOF > /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.220 192.168.1.229;
  next-server 192.168.1.116;
  filename "pxelinux/pxelinux.0";
}
EOF

DHCP サーバを有効にして、起動します。
[root@ks02 ~]# systemctl enable dhcpd
[root@ks02 ~]# systemctl start dhcpd


3. TFTP サーバの起動。

TFTP サーバを有効化します。
OL7 でも、tftp サーバは xinetd で管理されています。
[root@ks02 ~]# grep disable /etc/xinetd.d/tftp
        disable                 = yes
[root@ks02 ~]# sed -i 's/disable.*/disable\ =\ no/' /etc/xinetd.d/tftp
[root@ks02 ~]# grep disable /etc/xinetd.d/tftp
        disable = no

xinetd を有効化して、起動します。
[root@ks02 ~]# systemctl enable xinetd
[root@ks02 ~]# systemctl start xinetd

TFTP サーバの公開ディレクトリは、デフォルトである
/var/lib/tftpboot のままにしてあります。


4. Web サーバの起動。

Apache HTTP Server の Web サーバを有効化して、起動しておきます。
[root@ks02 ~]# systemctl enable httpd
[root@ks02 ~]# systemctl start httpd

Web サーバの公開ディレクトリは、デフォルトのまま
/var/www/html 配下を利用します。


5. syslinux RPM からのファイルコピー。

今回は、Kickstart 関連ファイルの配置を下記のようにしています。
/ (root)
|
|-- var/lib/tftpboot/  (TFTPサーバのルート ディレクトリ)
|            |-- pxelinux/
|                  |-- pxelinux.0
|                  |-- vesamenu.c32
|                  |-- xen.gz
|                  |-- pxelinux.cfg/
|                  |     |-- default
|                  |     |-- pxe.conf
|                  |
|                  |-- ovms342/
|                        |-- vmlinuz
|                        |-- initrd.img
|
|-- var/www/html/  (Webサーバのルート ディレクトリ)
|            |-- ks/
|            |     |-- ovms342.ks
|            |
|            |-- ovms342/
|                  |-- (DVD ISOイメージによる Yum リポジトリ)
|
|-- media/  (DVD ISOイメージのマウント先として利用)
|

まずは syslinux RPM に含まれる、PXE Boot するファイルをコピーします。
[root@ks02 ~]# mkdir /var/lib/tftpboot/pxelinux
[root@ks02 ~]# cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/
[root@ks02 ~]# cp -p /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/pxelinux/


6. OVMS インストーラからのファイルコピー。

OVMS インストーラの ISO ファイルをマウントします。
[root@ks02 ~]# md5sum OracleVM-Server-3.4.2-x86_64.iso
86f97bab988889b00ae40ee978e4977b  OracleVM-Server-3.4.2-x86_64.iso
[root@ks02 ~]# mount -o loop OracleVM-Server-3.4.2-x86_64.iso /media/
mount: /dev/loop0 is write-protected, mounting read-only

ISO ファイルから、OVMS のインストーラを起動するためのファイルをコピーします。
[root@ks02 ~]# mkdir /var/lib/tftpboot/pxelinux/ovms342
[root@ks02 ~]# cp -p /media/images/pxeboot/vmlinuz /var/lib/tftpboot/pxelinux/ovms342/
[root@ks02 ~]# cp -p /media/images/pxeboot/initrd.img /var/lib/tftpboot/pxelinux/ovms342/
[root@ks02 ~]# cp -p /media/images/pxeboot/xen.gz /var/lib/tftpboot/pxelinux/ovms342/

ISO ファイルから、OVMS の RPM 一式をコピーします。
※今回は ISO ファイルの中身をまるごとコピーしてしまいます。
[root@ks02 ~]# mkdir /var/www/html/ovms342
[root@ks02 ~]# cp -pr /media/* /var/www/html/ovms342/


7. PXE Boot 設定ファイルの作成。

設定ファイルを格納するためのディレクトリを作成しておきます。
[root@ks02 ~]# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg

PXE Boot メニューの設定ファイルを作成します。
cat << EOF > /var/lib/tftpboot/pxelinux/pxelinux.cfg/pxe.conf
MENU TITLE  PXE Server ks02
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
menu width 80
menu rows 14
MENU TABMSGROW 24
MENU MARGIN 10
menu color title 1;36;44 #ff008080 #00000000 std
EOF

PXE Boot の設定ファイルを作成します。
通常の Oracle Linux の Boot とは異なり、xen.gz を読み込みます。
cat << EOF > /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
DEFAULT vesamenu.c32
TIMEOUT 800
ONTIMEOUT 1
PROMPT 0
MENU INCLUDE pxelinux.cfg/pxe.conf
NOESCAPE 1
LABEL 1
        MENU LABEL Local Boot
        localboot 0
        TEXT HELP
        Boot to local hard disk
        ENDTEXT
LABEL 2
        MENU LABEL Oracle VM Server 3.4.2
        KERNEL mboot.c32
        APPEND /ovms342/xen.gz --- /ovms342/vmlinuz ip=dhcp ksdevice=eth0 ks=http://192.168.1.116/ks/ovms342.ks --- /ovms342/initrd.img
        TEXT HELP
        Install Oracle VM Server 3.4.2
        ENDTEXT
EOF


8. Kickstart の設定ファイルの作成。

Web サーバの公開ディレクトリの配下に
Kickstart ファイルを配置するディレクトリを作成しておきます。
[root@ks02 ~]# mkdir /var/www/html/ks

今回は、下記のような kickstart ファイルを作成します。
※ほとんどデフォルト設定で、ネットワークも DHCP 設定です。
※rootpw、ovsagent のパスワード指定は適当な文字列にしています。
cat << EOF > /var/www/html/ks/ovms342.ks
# Kickstart file for Oracle VM Server 3.4.2

install
eula Accepted
url --url=http://192.168.1.116/ovms342/

lang ja_JP.UTF-8
keyboard jp106
network --onboot yes --device eth0 --bootproto dhcp --noipv6
ovsagent --iscrypted $6XXXXXXXXXXXXX
ovsmgmntif eth0
rootpw --iscrypted $6XXXXXXXXXXXXX
reboot
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Tokyo
bootloader --location=mbr --append="rhgb quiet" --dom0_mem=800M

clearpart --all --drives=sda
zerombr
part /boot --fstype=ext4 --size=500 --asprimary
part / --fstype=ext4 --grow --maxsize=51200 --size=4096
part swap --size=1024

%packages
@base
@core
@ovs-virtualization
EOF


9. OVMS のインストール。

OVMS をインストールするサーバを Network boot すると、
PXE Boot のメニューが表示されるので、「Oracle VM Server 3.4.2」を選択すると・・・




OVMS が自動インストールされます。



OVMS の Kickstart については、ドキュメントでは下記のあたりが参考になります。

Oracle VMInstallation and Upgrade Guide for Release 3.4
3.1 Installing Oracle VM Server for x86 from PXE Boot
http://docs.oracle.com/cd/E64076_01/E64078/html/vmiug-install-pxe.html

以上、OL7 で Kickstart 環境構築してみる話でした。

0 件のコメント:

コメントを投稿