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

推薦する

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

HTML+CSS でハートビートの特殊効果を作成する

今日は、シンプルなハートビート効果を作成します。多くのコードは必要ありません。ボックスを追加し、CS...

CentOS 7.9 の zabbix5.0.14 のインストールと設定プロセス

目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...

MySQLで更新可能なビューを作成する方法の詳細な説明

この記事では、例を使用して、MySQL で更新可能なビューを作成する方法について説明します。ご参考ま...

Vue プロジェクトのパッケージ化と最適化の実装手順

目次Vueプロジェクトのパッケージ化、起動、最適化Vueプロジェクトのパッケージ化プロジェクトホステ...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

Nginx で 403 forbidden を解決するための完全な手順

ウェブページに403 Forbiddenと表示されるNginx (yum インストール ログは通常 ...

mysql update文の実行プロセスの詳細な説明

以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...

ウェブページに埋め込まれた Flash と IE、FF、Maxthon の互換性の問題

いろいろ苦労した後、インターネットで検索したり、以前の会社のプロジェクトを探したり、他の人のプロジェ...

ネイティブJSで実装されたギャラリー機能

目次最初2番目Native Js はギャラリー機能を実装します。画像をクリックすると、対応する拡大画...

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...

MySql 5.7.17 winx64 のインストールと設定に関する詳細なチュートリアル

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカウ...

Vue + OpenLayers クイックスタートチュートリアル

Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...

MySQL 5.7.17 zip インストールおよび設定チュートリアル MySQL 起動失敗の解決策

MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...

Bootstrap 3.0 学習ノート グリッドシステムの原則

前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...