【tech】CentOSのネットワークブートメモ(非インターネット環境)



2018/11/10更新

ドライブがない・・・


以前サーバ構築の依頼を請け、意気揚々と現場に向かったら用意されていたサーバにはDVDドライブが搭載されておらず、泣きながらその場でネットワークブート用のサーバを構築する手順を調べ、なんとか突破したときの恨みのメモです。(なんだそりゃ)

本題


インターネット接続もDVDドライブもないサーバへcentos7をインストールしなければならない事があり、NETWORK BOOTやネットワークブートやらのキーワードで色々調べてもなかなか気持ちのいい答えにたどり着けなかったので書き残しておきます!

かなり前のメモを転記しているので、間違っている可能性があります、
もしできなかった時は一緒に解決案を見つけたいのでコメントください!!
動画作りました!(install movie)


環境(準備物)


・作業用ノートPC(Windows 10)
 →イーサネットアダプタ(192.168.100.10)
・仮想環境 VMwarePlayer or VirtualBox
 →作業用ノートPCのイーサアダプタとブリッジ接続する
・仮想サーバ(CentOS7)
 →IPアドレス:192.168.100.120
 ※動画は構築時、DHCP取得の為(192.168.100.149)です。
・CentOS7 ISOイメージ
 →CentOS-7-x86_64-Minimal-1804.iso
・インストール先サーバ(空のサーバ)
LANケーブル

ざっくり手順


  1. Windows上へ仮想サーバ(PXEBOOTサーバ)構築
  2. Windowsとインストール先サーバ接続
  3. サーバのBoot設定
  4. サーバ起動

補足


VirtualBoxでもできますが、Windows10の仕様?関係で、Virtualboxではブリッジ接続するまでにひと手間かかるので、今回はVMwarePlayerでの手順となります!

それでは手順のスタートです。


手順


ネットワーク接続方式を「ブリッジ」に変更
(物理NW状態の~へチェック)

IPアドレス、デフォゲを設定(dhcp取得でもOK)
ex)192.168.100.120
  192.168.100.1
  ※動画は構築時、dhcp取得の為(192.168.100.149)です。

isoファイルの転送


teratermの機能を使用してisoファイルを仮想サーバへ転送しておきます。
teratermの「ファイル」→「SSH SCP」→転送するファイルを選択→「SEND」

PXEbootサーバ構築


yum -y install syslinux xinetd tftp-server httpd dhcp

mkdir /var/lib/tftpboot/pxelinux.cfg

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

vi /etc/xinetd.d/tftp
→disableを「yes」から「no」へ変更します。


# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no 
per_source = 11
cps = 100 2
flags = IPv4
}
~
~



・dhcpサーバの設定
vi /etc/dhcp/dhcpd.conf
下記の
option domain-name-servers 192.168.100.120;
}
までを追記(192.168.100.120は構築中の仮想サーバのアドレス)


#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
option domain-name-servers 192.168.100.120;

subnet 192.168.100.0 netmask 255.255.255.0 {
filename "pxelinux.0";
next-server 192.168.100.120;
range 192.168.100.250 192.168.100.254;
option routers 192.168.100.1;
default-lease-time 600;
max-lease-time 7200;
}


・firewallへdhcp、http、tftpそれぞれの許可を追加します。

firewall-cmd --add-service=dhcp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=tftp --permanent
firewall-cmd --reload



・CentOSイメージのマウント用ディレクトリの作成
mkdir -p /var/pxe/centos7

mkdir /var/lib/tftpboot/centos7

※動画ではこの時点でIsoファイルが転送完了しているか確認するために「ls」コマンドを打っています。

mount -t iso9660 -o loop CentOS-7-x86_64-Minimal-1804.iso /var/pxe/centos7

cp -r /var/pxe/centos7 /var/www/html/

cp /var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/

cp /var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/

cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

・インストールメニュー画面の定義
vi /var/lib/tftpboot/pxelinux.cfg/default


timeout 100
default menu.c32

menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://192.168.100.120/centos7 devfs=nomount

label 2
menu label ^2) Boot from local drive
localboot




systemctl enable httpd
systemctl start httpd

・pxebootの許可アドレスの指定
vi /etc/httpd/conf.d/pxeboot.conf

Alias /centos7 /var/pxe/centos7
    <Directory /var/pxe/centos7>
        Options Indexes FollowSymLinks
        # アクセス許可範囲
        Require ip 127.0.0.1 192.168.100.0/24
    </Directory>

・各サービスの再起動
systemctl enable httpd xinetd tftp dhcpd
systemctl restart httpd xinetd tftp dhcpd


この時点でpxeブートサーバの構築完了です。
動画ではこのあとpxeブートサーバのアドレスを変更しています。
(192.168.100.149 → 192.168.100.120)

サーバとクロスケーブルで接続。
サーバをnetworkbootへ変更して再起動

※動画では物理サーバに繋ぐことができないので、疑似的にVMwarePlayerを使用してPXEブート(ネットワークブート)させています。Pxe-Clientもブリッジ接続でPxe-Serverと同じNWに所属させています。

VMware同士だとこの状態ではうまくいかないようですが、実際の物理サーバだとうまく動いたので問題ないと思います!お試しください!

以上です。
これでうまくいくとおもいますが、万が一うまくいかなかった時はお問い合わせください!

以下は当blogの便利ショートカットやナレッジ集です、ぜひ見てみてください!
おすすめショートカットがあれば教えてください!

windows系、excelなどの操作編
ubuntuナレッジ



楽天トラベル

久しぶりにみてみると、モバイルバッテリーもメモリもSSDもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のRedmineの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)