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の仕組み
2.2 実験環境実験環境 |
ホスト名 | ネットワークモード | IPアドレス |
---|---|---|
サーバ | ホストのみ VMwareはDHPをオフにする必要がある | 10.0.0.100 |
クライアント | ホストのみ | DHCP 割り当て |
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~]#
ファイアウォールとSELinuxをオフにする
[root@Server~]# systemctl は、firewalld を無効にします --now [root@Server~]#setenforce 0 # selinuxは起動後にのみ有効になり、setenforce 0は一時的に無効になります
dhcp、tftp-serverをインストールする
[root@Server~]# yum -y dhcp tftp-server xinetd をインストールします 読み込まれたプラグイン: fastestmirror キャッシュされたホストファイルからミラー速度をロードする 依存関係の解決 --> トランザクションチェックを実行中 ---> パッケージ dhcp.x86_64 12:4.2.5-68.el7.centos.1 がインストールされます …
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~]# @補足: グローバル設定が設定されており、サブ設定が設定されていない場合は、グローバル設定が読み込まれます。グローバル設定が設定されており、サブ設定も設定されている場合は、自己設定が優先されます。
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~]#
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) を読み取ります。
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~]# システム構成キックスタート 詳細なインターフェースは次のとおりです。
基本設定(デフォルトの言語、キーボード、タイムゾーン、パスワード、インストール後の再起動)
インストール方法(新規インストール、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~]#
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 は省略できます。
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]#
デフォルトファイルの作成
[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 ^トラブルシューティング メニュータイトル トラブルシューティング
いわゆる無人操作とは、自動応答を意味します。インストールプロセス中に特定のオプション(パーティション分割方法など)に対する回答を提供するために人間とコンピュータの対話が必要な場合、自動応答ファイルは対応する項目に基づいて自動的に回答を提供できます。ただし、無人操作は完全に無人というわけではありません。少なくとも、ネットワーク カードから起動するように 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 をよろしくお願いいたします。
<<: CSS を使用した div サブ要素の水平および垂直中央揃えの例
>>: MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装
HTML5 と jQuery はアップロード前にローカル画像のプレビューを実装しており、その効果は...
HTMLハイパーリンクaタグのhrefジャンプとonclickの実行関係htmlのaタグのhrefは...
ミラーを探すDocker Hubのウェブサイトからイメージを検索できます。Docker Hubのウェ...
Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...
序文mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログ...
Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...
目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...
2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...
リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...
1. 文法: <meta name="名前" content="...
実行後、一部の Docker コンテナが終了することがあります。原因を調べるには、Docker コン...
注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...
私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...
目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...
目次1. パラダイム基盤1.1 パラダイムの概念2. 3つの主要なパラダイム2.1 3つの主要なパラ...