PXEブートサーバー構築

PXEブートサーバー構築

ディスクレスLVS構築のために、PXEブート(ネットワークブート)のイメージ元になるサーバーをCentOSで構築しました。

syslinux、tftp、DHCPのインストール

sudo yum install -y syslinux tftp* dhcp rpcbind dracut-network

hosts.allowでIP制限を掛けている場合、許可設定をする

sudo vi /etc/hosts.allow
in.tftpd : 許可IP

/etc/xinet.d/tftp の編集

sudo vi /etc/xinet.d/tftp

service tftp
{
        disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -v -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

 

xinetdのリスタート

sudo /etc/inet.d/xinetd restart

 

YUMレポジトリ書き換え(これを行わないと後のgroupinstall実行不可)

sudo vi /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-6.3 - Base
mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/6.3/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-6.3 - Updates
mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/6.3/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-6.3 - Extras
mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/6.3/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.3 - Plus
mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/6.3/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-6.3 - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/6.3/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[cloudera-cdh3]
# Packages for Cloudera's Distribution for Hadoop, Version 3, on RedHat or CentOS 6
name=Cloudera's Distribution for Hadoop, Version 3
mirrorlist=http://archive.cloudera.com/redhat/6/x86_64/cdh/3/mirrors
gpgkey = http://archive.cloudera.com/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera    
gpgcheck = 1

 

tftpディレクトリにYUMパッケージをgroupinstall

sudo yum -y groupinstall "Base" "Server Platform" --installroot=/var/lib/tftpboot/centos6/root/

ファイル整理

sudo cp -f -R /root /var/lib/tftpboot/centos6/root/
grep ^root /etc/shadow | cut -d: -f2 
$6$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
vi /var/lib/tftpboot/centos6/root/etc/shadow

# クライアント配信用システムの rootパスワードを設定

root:$6$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:14937:0:99999:7:::
sudo vi /var/lib/tftpboot/centos6/root/etc/fstab
none    /tmp        tmpfs   defaults   0 0
tmpfs   /dev/shm    tmpfs   defaults   0 0
sysfs   /sys        sysfs   defaults   0 0
proc    /proc       proc    defaults   0 0

 

初期ブートイメージ作成

sudo cp /boot/vmlinuz-2.6.32-279.5.2.el6.x86_64 /var/lib/tftpboot/centos6/
sudo dracut initramfs-2.6.32-279.5.2.el6.x86_64.img 2.6.32-279.5.2.el6.x86_64
sudo mv initramfs-2.6.32-279.5.2.el6.x86_64.img /var/lib/tftpboot/centos6/

pxeのconfig作成

sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
default centos6.3

label centos6.3
   kernel centos6/vmlinuz-2.6.32-279.5.2.el6.x86_64
   append initrd=centos6/initramfs-2.6.32-279.5.2.el6.x86_64.img root=nfs:192.168.134.178:/var/lib/tftpboot/centos6/root rw selinux=0

 

dhcpのconf設定

vi /etc/dhcp/dhcpd.conf

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.0.0 {
# --- default gateway
        option routers                  192.168.10.2;
        option subnet-mask              255.255.0.0;
        option domain-name              "domain.org";
        option domain-name-servers      192.168.10.2;
        filename "pxelinux.0";
        option root-path "/home/tftpboot";

        next-server 192.168.10.2;
        option time-offset              -18000; # Eastern Standard Time
        range dynamic-bootp 192.168.10.150 192.168.10.151;
        default-lease-time 21600;
        max-lease-time 43200;
}

 

NFS設定

sudo vi /etc/exports
/var/lib/tftpboot/centos6/root 192.168.10.0/24(rw,sync,no_root_squash,no_all_squash)

各サービスの起動

sudo /etc/init.d/dhcpd start
sudo /etc/init.d/rpcbind start
sudo /etc/init.d/nfslock start
sudo /etc/init.d/nfs start

 

これでPXEブートサーバーの設定は完了です。クライアントになるLVSの設定は別途。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください