VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

PXEはサーバーの無人バッチ展開を実装します

1. PXEの概要

1.1 PXEとは何か

PEX (Pre-Boot Execution Environment) はブート方法であり、インストール方法ではありません。クライアント/サーバーの動作モードに基づいて、PXE はネットワーク カードの ROM にあります。コンピューターが起動すると、BIOS は PXE クライアントをメモリに呼び出して実行します。PXE クライアントは、リモート エンドに配置されたファイルをネットワーク経由でローカルにダウンロードして実行します。

1.2 キックスタートとは

KickStart は、無人インストール方法です。KickStart は、一般的なインストール プロセス中に入力する必要があるさまざまなパラメータ (言語、タイム ゾーン、パスワード、パーティション、キーボードなど) を記録し、ks.cfg ファイルを生成することによって機能します。 (名前は変更できます。デフォルトは ks.cfg です)

その後のインストール プロセスでパラメータを入力する必要がある場合、インストーラはまず KickStart によって生成されたファイルを検索します。適切なパラメータが見つかると、見つかったパラメータが使用されます。適切なパラメータが見つからない場合は、インストーラは停止し、手動による介入が必要になります。

KickStart ファイルにインストール プロセス中に入力する必要があるすべてのパラメータが含まれている場合は、インストール プログラムに ks.cfg ファイルを取得する場所を指示するだけで済みます。インストールが完了すると、インストーラーは ks.cfg に設定された再起動オプションに従ってシステムを再起動し、インストールを終了します。

1.3 インストールの前提条件

BIOSはPXEをサポートしており、BIOSで有効にする必要があります。

NIC ネットワーク カードのサポート

2. PXEの動作原理

2.1 動作原理

トポロジー

ここに画像の説明を挿入

PXEの仕組み

1. まず、PXEクライアントはDHCPサーバーにIPアドレスの割り当て要求を送信します(ネットワークカードは情報を取得するためにDHCPにアドレスを要求する必要があります)

2. アドレスの割り当てに加えて、DHCP はブートローダー名 (ブート プログラムの名前) と Tftp サーバーの IP アドレスも割り当てます。

3. ネットワーク カードは Tftp クライアントを使用して Tftp サーバーへの要求を開始し、ブート プログラム (pxelinux.0) をメモリにロードします。

4.その後、BIOS がブート プログラムを実行します。

5. ブートローダはtftpから設定ファイル(デフォルト)を検索します。

6. 設定ファイルに従ってガイドする

2.2 実験環境

実験環境

ホスト名ネットワークモードIPアドレス
サーバホストのみ
VMwareはDHPをオフにする必要がある
10.0.0.100
クライアントホストのみDHCP 割り当て

2.3 PXE+KiskStartインストールに必要なもの

  • DHCP サーバーは、クライアントに IP アドレスを割り当てるために使用されます。
  • TFTPサーバーはPXE関連ファイル(システムブートファイル)を保存するために使用されます。
  • FTP|NFS|HTTP サーバーはシステムインストールファイルを保存するために使用されます
  • KickStart によって生成された ks.cfg 構成ファイル
  • PXE対応ネットワークカードをインストールするホスト

3. インストール手順

3.1 YUMソースの設定

YUMリポジトリの設定

[root@Server~]# cd /etc/yum.repos.d/
[root@Server/etc/yum.repos.d]# ls
rivers.レポ
[root@Server/etc/yum.repos.d]# mv rivers.repo rivers.repo.bak
[root@Server/etc/yum.repos.d]# vim dvd.repo
[発達]
名前=Centos7.6
ベースURL=ファイル:///mnt
有効=1
gpgcheck=0

[root@Server~]# マウント /dev/cdrom /mnt/
マウント: /dev/sr0 は書き込み禁止なので、読み取り専用でマウントします
[root@Server~]# 

[root@Server~]# yum clean all
読み込まれたプラグイン: fastestmirror
リポジトリのクリーニング: 開発
その他のリポジトリは 137 MB のディスク容量を消費しました (詳細については --verbose を使用してください)
[root@Server~]# 

3.2 ファイアウォールと selinux をオフにする

ファイアウォールとSELinuxをオフにする

[root@Server~]# systemctl は、firewalld を無効にします --now
[root@Server~]#setenforce 0

# selinuxは起動後にのみ有効になり、setenforce 0は一時的に無効になります

3.3 DHCP、tftp(tftp-server、xinetd)をインストールする

3.3.1 dhcp、tftp-server、xinetdをインストールする

dhcp、tftp-serverをインストールする

[root@Server~]# yum -y dhcp tftp-server xinetd をインストールします
読み込まれたプラグイン: fastestmirror
キャッシュされたホストファイルからミラー速度をロードする
依存関係の解決
--> トランザクションチェックを実行中
---> パッケージ dhcp.x86_64 12:4.2.5-68.el7.centos.1 がインストールされます
…

3.3.2 DHCPサービスの設定

DHCP ファイルの設定

# 1. dhcpディレクトリに入る [root@Server~]# cd /etc/dhcp/
[root@Server/etc/dhcp]# ls
dhclient.d dhcpd6.conf スクリプト
dhclient-exit-hooks.d dhcpd.conf

# 2. デフォルトの設定ファイルを確認します。空ですが、/usr/share/doc/dhcp*/ ディレクトリに設定テンプレートがあるので、それをコピーできます [root@Server/etc/dhcp]# cat dhcpd.conf 
#
# DHCP サーバー構成ファイル。
# /usr/share/doc/dhcp*/dhcpd.conf.example を参照
# dhcpd.conf(5)のマニュアルページを参照
#
[root@Server/etc/dhcp]# 

# 3. dhcpd設定テンプレートファイルをコピーします [root@Server/etc/dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: '/etc/dhcp/dhcpd.conf' を上書きしますか? y


# 4. dhcp ファイルを変更します。(ここで設定ファイルをコピーする必要はありません。次の段落をコピーするだけです。subnet--filename)

# 内部サブネットの場合は若干異なる構成です。
サブネット 10.0.0.0 ネットマスク 255.255.255.0 {            
  範囲 10.0.0.120 10.0.0.200;
  オプション ドメインネームサーバー 10.0.0.5、10.0.0.6;
  オプションドメイン名「example.com」;
  オプションルータ 10.0.0.254;
  オプション ブロードキャスト アドレス 10.0.0.255;
  デフォルトのリース時間 600;
  最大リース時間 7200;
  次のサーバー 10.0.0.100;
  ファイル名 "pxelinux.0";

  
}
   サブネット 10.0.0.0 ネットマスク 255.255.255.0 #ネットワークセグメントを宣言範囲 10.0.0.120 10.0.0.200; #アドレス範囲を割り当てるオプション ドメインネームサーバー: #DNS 設定、通常の会社には 2 つの DNS がありますが、ここではランダムに設定しますオプション ルーター 10.0.0.254; #ゲートウェイを設定しますオプション ブロードキャストアドレス 10.0.0.255; #ブロードキャストアドレスを設定しますdefault-lease-time 600; #デフォルトのリース時間、単位は秒ですmax-lease-time 7200; #最大リース時間、単位は秒ですnext-server 10.0.0.100; #tftp サーバーの IP アドレスファイル名 "/pxelinux.0"; #ネットワーク起動プログラム、(ネットワークブート)

# 5. DHCP サーバーを起動します。
[root@Server/etc/dhcp]# systemctl dhcpd を有効にする
/etc/systemd/system/multi-user.target.wants/dhcpd.service から /usr/lib/systemd/system/dhcpd.service へのシンボリックリンクを作成しました。
[root@Server/etc/dhcp]# systemctl dhcpdを起動します
[root@Server/etc/dhcp]#
[root@Server/etc/dhcp]# netstat -lantup|grep :67
udp 0 0 0.0.0.0:67 0.0.0.0:* 8503/dhcpd          
[root@Server/etc/dhcp]# 
[root@Server/etc/dhcp]# cd
[root@Server~]#


@補足: グローバル設定が設定されており、サブ設定が設定されていない場合は、グローバル設定が読み込まれます。グローバル設定が設定されており、サブ設定も設定されている場合は、自己設定が優先されます。

3.3.3 tftp サービスの設定

TFTPサービスを有効にする

# 1. tftp設定ファイルを変更する [root@Server~]# vim /etc/xinetd.d/tftp 
無効 = いいえ を はい に変更します

#xinetdを再起動
[root@Server~]# systemctl xinetd.service を再起動します
[root@Server~]# netstat -lntup|grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 9071/xinetd         
[root@Server~]# 

3.3.4 syslinuxをインストールし、pxelinux.0ファイルをコピーする

tftp-server を設定する場所

# 1. pxelinux.0 ファイルを提供するパッケージを見つける [root@Server~]# yum は "*/pxelinux.0" を提供します
読み込まれたプラグイン: fastestmirror
キャッシュされたホストファイルからミラー速度をロードする
syslinux-4.05-15.el7.x86_64 : シンプルなカーネルローダー
     ...: FATファイルシステムから起動する
リポジトリ: 開発
一致した項目:
ファイル名: /usr/share/syslinux/pxelinux.0



syslinux-tftpboot-4.05-15.el7.noarch : SYSLINUX
     ...: /var/lib/tftpboot内のモジュール、利用可能
     ...: ネットワークブート
リポジトリ: 開発
一致した項目:
ファイル名: /var/lib/tftpboot/pxelinux.0



# 2. syslinux パッケージをインストールし、pxelinux.0 ファイルを tftp-server ディレクトリ [root@Server~] にコピーします。# yum -y install syslinux

[root@Server~]# rpm -ql syslinux|grep pxe
syslinux-4.05 のドキュメント
/usr/share/syslinux/gpxecmd.c32
0xc0 ...
syslinux のディレクトリ
syslinux.com のディレクトリ
syslinux のディレクトリ
[root@Server~]# 

# 3. pxelinux.0 ファイルを tftp-server ディレクトリにコピーします [root@Server~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@Server/var/lib/tftpboot]# ls
pxelinux.0

# 4. スタートアップ設定ファイルを保存するディレクトリを作成します。デフォルト [root@Server/var/lib/tftpboot]# mkdir pxelinux.cfg
[root@Server/var/lib/tftpboot]# ls
pxelinux.cfg pxelinux.0
[root@Server/var/lib/tftpboot]# cd pxelinux.cfg
[root@Server/var/lib/tftpboot/pxe.cfg]# pwd
tftpboot.cfg は、

# 5. /mnt/isolinux/ ディレクトリの下にあるすべてのファイルを /var/lib/tftpboot に移動します [root@Server/var/lib/tftpboot]# cd --
[root@Server~]# cd /mnt/isolinux/
[root@Server/mnt/isolinux]# cp -a isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@Server/mnt/isolinux]#cp * /var/lib/tftpboot/

確認する

ここに画像の説明を挿入

1. クライアントでシステムを起動し、ネットワークカードから起動することを選択します。
2. DHCPサーバーからIPアドレス(10.0.0.81)を取得し、tftpサーバーのIPアドレス(10.0.0.81)とネットワークブートプログラム(pxelinux.0)も取得します。
3. tftp-server(/var/lib/tftpbootディレクトリ)上のpxelinux.0をネットワークカード経由で読み取り、メモリに読み込みます。
4. メモリ内のブートローダを実行する
5. ブートローダー設定ファイル (/var/lib/tftpboot/pxe.cfg/default) を読み取ります。

3.4 kickstart.cfg 設定ファイルの記述

3.4.1 system-config-kickstartをインストールする

system-config-kickstartをインストールする

[root@Server/etc/yum.repos.d]# cd --

# 1. system-config-kickstartをインストールする
[root@Server~]# yum -y install system-config-kickstart
読み込まれたプラグイン: fastestmirror、langpacks
キャッシュされたホストファイルからミラー速度をロードする
…

#2. インターフェースを起動し、ks.cfg を設定する
[root@Server~]# システム構成キックスタート 
詳細なインターフェースは次のとおりです。

3.4.2 system-config-kickstart インターフェース設定

基本設定(デフォルトの言語、キーボード、タイムゾーン、パスワード、インストール後の再起動)

ここに画像の説明を挿入

インストール方法(新規インストール、HTTPインストール)

ここに画像の説明を挿入

新しいブートローダーのインストール

ここに画像の説明を挿入

パーティション情報

ここに画像の説明を挿入

ここに画像の説明を挿入

ネットワーク構成

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

ファイアウォールの設定

ここに画像の説明を挿入

ディスプレイ設定(グラフィカルインターフェースをインストールするかどうか)

ここに画像の説明を挿入

パッケージのインストールの選択

ここに画像の説明を挿入

ここに画像の説明を挿入

インストール後のスクリプト

ここに画像の説明を挿入

ここに画像の説明を挿入

保存

ここに画像の説明を挿入

3.5 HTTPミラーソースの設定

3.5.1 httpのインストール

httpdをインストールする

# 1. httpdをインストールする
[root@Server ~]# yum -y httpdをインストール
読み込まれたプラグイン: fastestmirror、langpacks
キャッシュされたホストファイルからミラー速度をロードする
…
# 2. 自動的に起動するよう設定し、サービスを開始する [root@Server ~]# systemctl enable httpd
[root@Server ~]# systemctl start httpd

#3. ディレクトリを作成する [root@Server ~]# cd /var/www/html
[root@Server/var/www/html]# mkdir ks.cfg 
[root@Server/var/www/html]# mkdir pub

# 4. yumソースを修正し、ローカルソースをhttpに変更する
[root@Server/var/www/html]# cd
[root@Server~]# cat /etc/yum.repos.d/dvd.repo
[発達]
名前=rhce7
ベースURL=http://10.0.0.100/pub
有効=1
gpgcheck=0
[root@Server~]# 

3.5.2 システム起動時にISOイメージファイルをマウントする

ISOを自動的に起動するように設定する

# 1. 最後に次の情報を追加します。
[root@Server~]# vim /etc/fstab 
/dev/cdrom /var/www/html/pub iso9660 デフォルト、ループ 0 0
[root@Server~]# tail -1 /etc/fstab 
/dev/cdrom /var/www/html/pub iso9660 デフォルト、ループ 0 0
[root@Server~]# 

# 2. イメージをマウントします [root@Server~]# mount -a

# 3. Firefox を使ってアクセスします。アクセスできれば、http ミラー ソース [root@Server~] に問題がないことを意味します。# firefox http://10.0.0.100/pub &


@ バージョン 7 では、パターンは loop、defaults、loop を認識できます。 loop の後の loop は省略できます。

3.6 ブートメニューのデフォルトを設定する

3.6.1 ks6.cfgを/var/www/html/ksに移動する

ks6.cfgを移動する

# 1. ルートディレクトリに保存したcfgを/var/www/html/ks.cfg/に移動します。
[root@Server~]# mv ks6.cfg /var/www/html/ks.cfg/
[root@Server/var/www/html/ks.cfg]# ls
ks6.cfg 
[ルート@サーバー/var/www/html/ks.cfg]# 

3.6.2 ブートメニューの設定

デフォルトファイルの作成

[root@Server~]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@Server/var/lib/tftpboot/pxelinux.cfg]# ls
デフォルト

# 1. デフォルト ファイルを書き込みます。元のラベル linux に次の内容を追加します。
# ラベルチェックのメニューデフォルトを削除します(デフォルトの起動モード、設定されている場合、選択する必要はありません、デフォルトの起動オプション)

[root@Server/var/lib/tftpboot/pxelinux.cfg]# vim デフォルト 

ラベル rhce7
  メニューラベル ^rhce7 をインストール
  メニューのデフォルト
  カーネル vmlinuz
  initrd=initrd.img ks=http://10.0.0.100/ks.cfg/ks6.cfg を追加します

# 2. デフォルトの時間を変更できます。デフォルトは 600 です (単位は 600 秒の 10 分の 1、つまり 60 秒です)
# ここでは60を設定しました。これは6秒を意味します
タイムアウト 60

-------------------
パラメータ導入 efault vesamenu.c32 # これは必須項目です。または menu.c32 を使用してください。

timeout 60 # タイムアウトの待機時間。60 秒以内に操作が行われない場合、デフォルトのメニューが自動的に選択され、ディスプレイがロードされます。boot.msg # これは、オプションに関するいくつかの指示を提供するファイルです。# メニューを表示したままにするのではなく、メニューを終了するときに画面をクリアします。
# vesamenuの場合、これはグラフィック背景がまだ表示されていることを意味します
# 画面がグラフィック モードになっている限り、メニュー自体は表示されます。
メニューをクリア
menu background splash.png # 背景画像メニュータイトル CentOS 7 # 大きなタイトルメニュー vshift 8

…
ラベル Linux
  メニュー ラベル ^Install CentOS 7 # メニュー テキスト kernel vmlinuz # カーネル ファイル パス。相対パスは tftp/tftpboot のルート パスから始まることに注意してください。追加 initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet  
  # initrd へのパスを含むカーネル ブート オプションも "ks=http://10.0.0.100/ks.cfg/ks6.cfg" に変更する必要があります。
   
  menu default # menu default は、コンピュータの電源を入れたときにカーソルがデフォルトでこのラベルにあることを意味します。 # 一般に、pxe 環境では、このパスはシステム インストール ファイルのパスを直接指します。具体的な方法については、以下の例を参照してください。 # ユーティリティ サブメニュー # サブメニュー項目の設定方法 menu begin ^トラブルシューティング
  メニュータイトル トラブルシューティング


3.6.3 クライアントをネットワークブート(RAIDなど)に設定して起動する

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

IV. 結論

いわゆる無人操作とは、自動応答を意味します。インストールプロセス中に特定のオプション(パーティション分割方法など)に対する回答を提供するために人間とコンピュータの対話が必要な場合、自動応答ファイルは対応する項目に基づいて自動的に回答を提供できます。ただし、無人操作は完全に無人というわけではありません。少なくとも、ネットワーク カードから起動するように BIOS を設定するのは手動で行う必要があり、システムをインストールした後にネットワーク カードから起動しないように設定するのも手動で設定する必要があります。これ以外は、基本的に無人でインストールできます。

展開中は、Kickstart+DHCP+HTTP(FTP)+TFTP を使用して、dhcp、tftp-server、xinetd、httpd、system-config-kickstart などのソフトウェアをインストールすることをお勧めします。

実際の環境では、通常、サーバーには複数のハードディスクがあります。 RAID 後、ハードディスク全体は約 10T になります。 kickstart を使用して自動的にインストールおよびパーティション分割するにはどうすればよいですか? 通常、サーバーのハードディスクは 2T を超えます。 kickstart を使用してインストールおよび構成するにはどうすればよいですか?ここでのパーティション分割には MBR 方式は使用できません。起動とパーティション分割には GPT 形式を使用する必要があります。要件を満たすには、ks.cfg の最後に次のコマンドを追加する必要があります。

%前
 parted -s /dev/sdb mklabel gpt
%終わり

VMware による Centos7 システムの PXE+kickstart 無人インストールの実装に関するこの記事はこれで終わりです。VMware による Centos7 システムの無人インストールに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS 6.4 での PXE+Kickstart によるオペレーティング システムの無人インストールの詳細な説明
  • PXEを使用してLinuxシステムを自動的に展開する方法
  • PXEを使用してCentOS7.6を自動的にインストールする方法の詳細なチュートリアル
  • PXE キックスタート自動展開システムのインストール

<<:  CSS を使用した div サブ要素の水平および垂直中央揃えの例

>>:  MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装

推薦する

ローカル写真をアップロードする前にプレビューコード例を実装するための HTML5 と jQuery

HTML5 と jQuery はアップロード前にローカル画像のプレビューを実装しており、その効果は...

HTMLハイパーリンクaタグのhrefジャンプとonclick間の実行順序の例

HTMLハイパーリンクaタグのhrefジャンプとonclickの実行関係htmlのaタグのhrefは...

Dockerとイメージの操作方法

ミラーを探すDocker Hubのウェブサイトからイメージを検索できます。Docker Hubのウェ...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

データベースのデフォルトパスを変更した後にmysqlが起動できない問題の解決策

序文mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログ...

Ubuntu システムでタイムゾーンと時刻を変更する方法

Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

CSS でリスト スタイル属性を設定する方法 (この記事を読むだけ)

リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...

meta name="" content="の機能の詳細な説明

1. 文法: <meta name="名前" content="...

Dockerコンテナ終了エラーコードの手順

実行後、一部の Docker コンテナが終了することがあります。原因を調べるには、Docker コン...

MySql 5.6.35 winx64 インストール詳細チュートリアル

注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...

MySql のクラッシュとサービスの起動失敗の解決策

私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...

Vue バックグラウンドでステータス ラベルをエレガントに記述する例

目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...

MySQL 学習: 初心者のための 3 つのパラダイム

目次1. パラダイム基盤1.1 パラダイムの概念2. 3つの主要なパラダイム2.1 3つの主要なパラ...