GNU/Linux >> Linux の 問題 >  >> Linux

UEFIハードウェアを使用したPXEブートの継続

この記事は、短いシリーズの2つのうちの2つです。見逃した場合は、最初の記事UEFIハードウェア用にPXEブートを設定する方法を必ずお読みください。 。

最初の記事では、機能するPXEサーバー、PXEで起動されたシステムにIPアドレスを配信するように構成されたDHCPサーバー、および起動可能なシステムとISOイメージを配信するためのTFTPサーバーを作成しました。この記事では、環境を完成させる作業を続け、問題が発生した場合のトラブルシューティングのヒントをいくつか紹介します。

HTTPセットアップ

新しいサーバーにKickstartを提供するには、HTTPサーバーが必要です。 ファイルとインストールするOS。これらのファイルをHTTPS経由で提供することは可能ですが、ほとんどの新しいサーバーでは、簡単にするためにHTTPが使用されます。

HTTPサーバーを設定する手順は次のとおりです。

1- HTTPをインストールします サーバー:

# yum install -y httpd

2- Red Hat仮想化ホストISOイメージをマウントします(マウントされていない場合):

# mount -t iso9660 /path/iso-file.iso /mnt -o loop,ro

3-スカッシュイメージとISOファイルをターゲットの場所にコピーします:

# mkdir /var/www/html/rhv4.3/{ISO,image}

# cp -a /mnt /var/www/html/rhv4.3/ISO

# cp /mnt/Packages/redhat-virtualization-host-image-update* /tmp

# rpm2cpio redhat-virtualization-host-image-update* | cpio -idmv

# cp /tmp/usr/share/redhat-virtualization-host-version_number_version.squashfs.img /var/www/html/rhv4.3/image

4-キックスタートをコピーします 目的の場所へのファイル:

# mkdir /var/www/html/kickstarts/

# vi /var/www/html/kickstarts/ks.cfg 🡪 Create a new file called ks.cfg

5- httpdを有効にして開始します サービス:

#systemctl enable httpd; systemctl start httpd

キックスタートファイル

これがサンプルのKickstartです RHVHOSのインストールに使用できるファイル。 Red Hatは、インストール先で「ポーションを自動的に構成する」オプションを使用することを強くお勧めします。

lang en_US
keyboard us
eula --agreed
rootpw Redhat --plaintext

#platform x86, AMD64, or Intel EM64T
reboot
text
bootloader --location=mbr --append="rhgb quiet crashkernel=auto"
zerombr
liveimg --url=http:// 192.168.1.10/rhv4.3/image/redhat-virtualization-host-version_number_version.squashfs.img
clearpart --drives=sda --all
ignoredisk --only-use=sda
autopart --type=thinp

%post --erroronfail
nodectl init
%end

備考:

1-以下のURLはRedHatによって提供され、カスタマイズされたキックスタートを構築するために使用できます。 ファイル:

[https://access.redhat.com/labs/kickstartconfig/](https://access.redhat.com/labs/kickstartconfig/)

2- %postキックスタートのセクション ファイルの場合、Linuxコマンドを追加して、 ovirtmgmtの静的IPを設定できます。 hostname も同様です 。

自動化オプション

この手順は複数のサーバーをインストールするのに適していますが、手動で変更する必要があります。ただし、さまざまな方法で完全に自動化できます。

自動化はこの記事の範囲外ですが、自動化の2つの異なるオプションについてここで大まかに説明します。

Ansibleを使用してサーバーの電源投入を自動化する

現在、ほとんどのHWベンダーは Ansibleを持っています サーバーに関するさまざまな詳細を取得し、サーバーの電源をオン/オフするためのモジュール。OSのインストールを自動化するには、次のことを行うためのAnsibleプレイブックを作成する必要があります。

  1. Play 1: Kickstart用のJinja2テンプレートを作成します 投稿セクションで静的IPとホスト名が適切に置き換えられたファイル。PXEインターフェースのMACアドレスをすべてのサーバーの静的IPとホスト名にマッピングする変数ファイルを使用して、動的に生成された Kickstart HTTPサーバーの関連する場所にファイルします。
  2. 再生2:PXEインターフェイスのMACアドレスを使用して、必要なサーバーの電源を入れます。
  3. 再生3:別のサーバーに移動してインストールする前に、静的IPを使用して新しくインストールしたサーバーをプローブします。

長所:

  1. 新しいサーバーの場合に変数ファイルを更新する以外に、手動での作業は必要ありません。

短所:

  1. このオプションには、ハードウェア管理APIとの統合が必要です。
  2. このオプションでは、一度に1つのサーバーにOSをインストールできます(httpサーバーでホストできるキックスタートファイルは一度に1つだけです)。

OSのインストール後にAnsibleを使用してホストをポスト構成する

ここでdhcpd.conf プロビジョニングネットワーク内の新しいサーバーのすべてのMACアドレスに割り当てられるIPアドレスをハードコーディングします。次に、これらのIPを含むインベントリファイルを作成し、プロビジョニングネットワークでそのIPアドレスにマップされるすべてのサーバーのホスト名と静的IPアドレスを含む変数ファイルを作成します。最後に、Ansibleプレイを1つ作成して、OSのインストール後にサーバーをポスト構成します。

長所:

  1. ハードウェアベンダーのAnsibleモジュールへの依存はありません。
  2. 複数のサーバーを並行して構成できます。

短所:

  1. dhcpd.confのように完全に自動化されていません 変更する必要があり、新しいサーバーの変数も追加する必要があります。さらに、サーバーの電源を手動でオンにする必要があります。

[Ansibleについてもっと知りたいですか? RedHatから無料の技術概要コースを受講してください。 Ansible Essentials:自動化の技術概要のシンプルさ]

ファイアウォールとネットワークのセットアップ

PXEサーバーとプロビジョニングネットワークの間にファイアウォールがある場合は、プロビジョニングネットワークからPXEサーバーへの着信TFTPおよびHTTPトラフィックを許可する必要があります。 PXEサーバーからプロビジョニングネットワークへのICMPトラフィック(新しいサーバーはDHCPサーバーからping可能である必要があります)も許可する必要があります。

次のセクションで説明するように、トラブルシューティングのために、プロビジョニングネットワークからPXEサーバーへの着信SSHトラフィックを有効にする必要があります。

さらに、新しいサーバーにPXEインターフェイスを結合すると、セットアップが複雑になるため、必要ありません。

PXEサーバーから、DHCP、TFTP、およびHTTPサービスを firewalldで有効にする必要があります 。 DHCP、TFTP、およびHTTPサービスがすべて同じサーバー上にあると仮定すると、次のコマンドを実行する必要があります。

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

# firewall-cmd –reload

トラブルシューティング

PXEのセットアップには最初はある程度の努力が必要ですが、新しいサーバーにはまだOSがないため、多くのことを実行できないため、トラブルシューティングが問題になる可能性があります。トラブルシューティングに役立つ可能性のあるヒントを次に示します。

  1. サーバーがDHCPIP経由で到達可能であることを確認します。これは、 /var/lib/dh​​cpd/dhcpd.leasesで関連するDHCPIPアドレスを見つけることで実行できます。 (または、公開されているPythonスクリプトのいずれかを使用してこのファイルを解析することにより)次にpingを実行します。
  2. tcpdumpを使用する トラブルシューティングに役立つPXEサーバーで。
  3. /run/initramfs/rdsosreport.txtを収集しています サーバーのインストールが失敗した場合に備えてログに記録します。

これは、トラブルシューティングで最も難しい部分です。インストールが失敗した場合、このファイルを転送するネットワークがなくなり、RedHatサポートはこのファイルがないとサポートできなくなります。

このファイルを収集する方法はたくさんありますが、最も簡単な方法は次のとおりです。

  1. RHEL7isoから新しいサーバーを起動します。
  2. Rescueを選択します オプション。
  3. Shift + F2を押します シェルプロンプトを取得します。
  4. fdiskを使用する / dev / sdaに新しいパーティションを作成します Linuxタイプの。
  5. ISOをアンマウントします。
  6. サーバーを再起動します。
  7. インストールが失敗し、Dracutコマンドラインプロンプトが表示されたら、次の手順を実行します。
#mkdir /mnt

#mount /dev/sda1 /mnt

#cp /run/initramfs/rdsosreport.txt /dev/sda1

#umount /dev/sda1
  1. サーバーを再起動し、1から3までの手順を繰り返します。
  2. マウント/dev / sda1
#mkdir /mnt

#mount /dev/sda1 /mnt
  1. ここには2つのオプションがあります:
  • 次を使用してDHCPIPアドレスを取得します:
#dhclient

#scp /mnt/rdsosreport.txt [email protected]:/root
  • 新しいサーバーのパーティションとしてラップトップにディレクトリをマウントし、 rdsosreport.txtをコピーします このパーティションに。

まとめ

この時点に到達しました。おめでとうございます。これで、新しいRHVホストを展開できるPXEシステムが機能するようになりました。すべてが期待どおりに機能しない場合は、トラブルシューティングのセクションを参照することを忘れないでください。また、このポイントに到達するには、記述されているとおりに各ステップを完了する必要があります。詳細な手順がたくさんあるので、作業を確認してください。新しい環境で頑張ってください。

参考資料

  • RedHat仮想化用のインストールホスト
  • ネットワークインストールの準備

Linux
  1. libvirtを使用したUEFIHTTPブートのセットアップ

  2. 改行をNulに置き換えますか?

  3. Muninでサーバーを監視する

  1. Linuxでのファイルパーミッションと例

  2. Ubuntu 18.04 で NGINX を使用して静的ファイル リクエストをフィルタリングおよび最適化する

  3. ngx_http_image_filter_module による画像プレビュー

  1. Git でファイルのアクセス許可を保持する

  2. ワイルドカード ファイル パターンを指定した tar -C

  3. ddを使用してFFでファイルをパディングする方法は?