前回は、PXEブートに必要となるTFTPサーバの構築について解説しましした。次はPXEブートの構成要素ではありませんが、PXEブートした後にネットワーク経由でOSをインストールするために必要となるHTTPサーバとリポジトリーの構築方法を分かりやすく説明します。
PXEブートを含むOSインストールの自動処理のフローの図でいうと、以下の赤線の範囲が対象です。。

OSインストールにおけるHTTPサーバの役割
一般的なHTTPサーバの役割は、
・Webサーバ
です(またまた身も蓋もない書き方だなー。HTTPというプロトコルを用いて、HTML形式のコンテンツをブラウザに配信する機能、です)。
OSインストールにおいては、インストールメディアを提供するひとつの手段としてHTTPサーバが使用されます。それがリポジトリーです。
HTTPサーバのインストール
RedHatやRocky Linuxでは、以下のコマンドでHTTPサーバ(Apache)をインストールすることができます。
# dnf -y install httpd
リポジトリーに必要なファイルの配備
HTTPサーバをインストールすると、/var/www/html/ ディレクトリが作成されます。このディレクトリがHTTPによるファイル配信のtopディレクトリとなります。この配下となるように、以下の通りRHEL8.8のリポジトリー用のディレクトリを作成することにします。
/var/www/html/repositories/rhel-8.8-x86_64/
リポジトリーに必要なファイルは、OSディストリビューションのISOイメージから取り出します。
まず最初に、ISOイメージの中身を以下の例のように /media/ にマウントします。
# mount -t iso9660 -o loop /tmp/rhel-8.8-x86_64-dvd.iso /media
その後、/var/www/html/repositories/rhel-8.8-x86_64/ というディレクトリを作成して、その配下にISOイメージの中身をまるごとコピーします(以下の例ではtarを使っています)。
# cd /media
# mkdir -p /var/www/html/repositories/rhel-8.8-x86_64
# tar cf – . | (cd /var/www/html/repositories/rhel-8.8-x86_64; tar xf -)
コピーの代わりに、ISOイメージのマウントディレクトリを /var/www/html/repositories 配下にシンボリックリンクするという方法でもOKです。
# mkdir -p /var/www/html/repositories
# ln -s /media /var/www/html/repositories/rhel-8.8-x86_64
HTTPサーバの設定
HTTPサーバ Apacheの設定ファイルは、/etc/httpd/conf/httpd.conf です。
私の環境では、HTTPサーバのIPアドレスは、192.168.2.203 なので、httpd.confの中の ServerName 行を以下の例のように修正します。
ServerName 192.168.2.203:80
前述のように、/var/www/html/ 配下にシンボリックを含める場合は、<Directory “/var/www/html”> セクションの中の Options行に FollowSymLinksを追加して下さい。
<Directory "/var/www/html">~
Options FollowSymLinks~
</Direcgtory>
HTTPサーバの起動
/etc/httpd/conf/httpd.conf を修正したら、HTTPサーバを以下の通り起動します。
# systemctl start httpd
システム起動時にHTTPサーバを自動起動するために、自動起動の設定もしておきましょう。
# systemctl enable httpd
SELinuxも無効にしておこう..
SELinuxが有効になっていると、思い通りの動作をしてくれないので無効にしてしまいましょう。
以下のコマンドでSELinuxの有効/無効を確認することができます。
# getenforce
Enforcing と出力されたら有効になっています。Disabled または Permissiveと出力されたら無効になっています。Enforcing と出力されたら、以下のコマンドを実行して 無効化しましょう。
# setenforce 0
また、システム起動時に自動的に無効化されるように、/etc/selinux/config ファイルにおいて、SELINUX行を以下の通りに修正しておきましょう。
SELINUX=disabled
広告主へのリンク
![]()
このブログにおける関連リンク
・犬でも分かるPXEブート(1):PXEブートとは
・犬でも分かるPXEブート(2):起点は電源ON
・犬でも分かるPXEブート(3):DHCPサーバの構築
・犬でも分かるPXEブート(4):TFTPサーバの構築
・犬でも分かるPXEブート(6):kickstartによるOS自動インストール
・犬でも分かるPXEブート(7):実際にやってみた
・犬でも分かるKVM シリーズ


コメント