犬でも分かるPXEブート(5):HTTPサーバとリポジトリーの構築

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

HTTPの処理

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 シリーズ

コメント

タイトルとURLをコピーしました