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 スケジュール データベース バックアップ (フル データベース バックアップ) の実装

推薦する

Node.js のイベント モジュールに関する知識ポイントのまとめ

Node の研究と応用を通じて、NodeJS はシングルスレッド、イベント駆動型、非ブロッキング I...

MySQL での utf8mb4 照合の例

MySQL における一般的な utf8mb4 ソート規則は次のとおりです。 utf8mb4_0900...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

Nginxはctxを使用してデータ共有とコンテキスト変更機能を実現します。

環境: init_worker_by_lua、set_by_lua、rewrite_by_lua、a...

ウェブデザイン経験

<br />著者はかつてWebデザインの初心者でしたが、継続的な探求と実践を通じて、今で...

CSSボックスの表示/非表示とトップレイヤーの実装コード

.imgbox{ 幅: 1200ピクセル; 高さ: 612px; 右マージン: 自動; 左マージン...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

MySQL可視化ツールNavicatへの接続方法

Navicatをインストールした後次のエラーが発生する場合があります: Client does no...

マークアップ言語 - フレーズ要素

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQL レプリケーション問題の 3 つのパラメータの分析

目次01 sql_slave_skip_counter パラメータ02 スレーブスキップエラーパラメ...

MySQL マスタースレーブレプリケーションの読み書き分離構造の詳細な説明

MySQL マスタースレーブ設定MySQL のマスター/スレーブ レプリケーションと読み取り/書き込...

HTML の相対パス (Relative Path) と絶対パス (Absolute Path) の詳細な理解

私は 1 年以上 Java Web 開発に携わっており、HTML または JSP ページの作成は避け...

SQL実行ステップの詳細な分析

SQL実行ステップの詳細な分析まず、ステートメントが実行される順序を見てみましょう。 (8)選択する...

HTML と JavaScript を使用してローカル メディア (ビデオとオーディオ) ファイルを再生する方法

まず、セキュリティ上の理由から、JavaScript はローカル リソース ファイルに直接アクセスで...

MySQL データベース接続例外の概要 (収集する価値あり)

Centos にプロジェクトをデプロイするときに奇妙な問題が見つかりました。データベース接続で例外...