PXEを使用してLinuxシステムを自動的に展開する方法

PXEを使用してLinuxシステムを自動的に展開する方法

背景

データセンターでは、数十台、数百台のサーバーが同時にオンラインになるため、システムのインストールは非常に面倒になります。システムのインストール後も、多くの設定が必要になり、作業負荷が非常に大きくなります。 VMware や FusionCompute などの多くの仮想化プラットフォームは、通常、ISO またはメーカーのツールを使用して 1 つずつインストールされるため、面倒です。

PXEはブート前実行環境です
ネットワークカード経由で起動するためのPXEテクノロジー
1.BIOSサポート
2. ネットワークカードのサポート
3. BIOSで有効にする必要があります。サーバーを展開し、サーバーにDHCP+tftpをインストールするには、サーバーのBMCインターフェースを開きます(DHCPは動的IP取得を提供します)。
ネットワークカードDCHPが情報を取得する
DHCP は、IP アドレスの割り当てに加えて、ブート プログラムの名前と TFTP サーバーのアドレスも提供できます。ブート プログラムはメモリにロードされ、構成ファイルに従って起動されます。

アイデア:

ファイアウォールと selinux をオフにするように yum ソースを設定します
dhcp、tftp-server、htppd、syslinux パッケージをインストールします。dhcp、tftp-server を設定し、サービスを開始します。system-config-kickstart パッケージをインストールし、ks unattended スクリプトを生成します。ブート メニューを設定します。

DHCPの設定

CDをマウントする

mount /dev/cdrom /media

yumソースを設定する

. `vim dvd.repo
	[開発] #後のパッケージ選択を定義します name=centos
	ベースURL=ファイル:///メディア
	gpgcheck=0
	有効=1`

DHCP ファイル (動的ホスト構成プロトコル) の編集

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #テンプレートをコピーしてconfファイルを上書きします
vim /etc/dhcp/dhcpd.conf #グローバル設定とサブ設定を選択します。
   サポートされているすべてのネットワークに共通するグローバル構成# オプション定義...
  7 オプションドメイン名 "example.org";
  8 オプション ドメインネームサーバー ns1.example.org、ns2.example.org;
  9 
 10 デフォルトのリース時間 600;
 11 最大リース時間 7200;
 12 next-server 192.168.100.10; #tftpserver の場所を指定します 13 filename "/pxelinux.0"; #ネットワーク ブート プログラム ファイル # サブ構成 内部サブネット用の若干異なる構成です。
 47 #サブネット構成 48 サブネット 192.168.100.0 ネットマスク 255.255.255.0 {
 49 範囲 192.168.100.11 192.168.100.30; #DHCP アドレス プール範囲 50 オプション ドメイン ネーム サーバー 192.168.100.2; #DNS アドレス (設定可能)
 51 option domain-name "example.com"; #ドメイン名アドレス52 option routers 192.168.100.1; #ゲートウェイアドレス53 option broadcast-address 192.168.100.255; #ブロードキャストアドレス54 default-lease-time 600; #リース期間中に取得した IP はどのくらいの期間存続しますか55 max-lease-time 7200; #リース期間が切れても、まだ使用可能であれば引き続き使用できますが、そうでない場合は自動的にリサイクルされます56 }

tftp 設定

[root@pxeserver ~]# vim /etc/xinetd.d/tftp 

# デフォルト: オフ
# 説明: tftp サーバーは、単純なファイル転送を使用してファイルを提供します \
# プロトコル。tftp プロトコルは、ディスクレス \ を起動するためによく使用されます。
# ワークステーション、ネットワーク対応プリンタに設定ファイルをダウンロード、\
# 一部のオペレーティング システムではインストール プロセスを開始します。
サービスtftp
{
        ソケットタイプ = dgram
        プロトコル = udp
        待つ = はい
        ユーザー = ルート
        サーバー = /usr/sbin/in.tftpd
        server_args = -s /var/lib/tftpboot
        無効 = no ##yes を no に変更
        パーソース = 11
        cps = 100 2
        フラグ = IPv4
}

syslinux の設定

yum は "*/pxelinux.0" を提供します ##このファイルが属するパッケージを検索します yum install -y syslinux #syslinux をインストールします
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # pxelinux.0 ファイルを tftp ルート ディレクトリにコピーします mkdir -p /var/lib/tftpboot/pxelinux.cfg # デフォルトの設定ファイルを配置します cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default ## ブート ファイル cp を pxeLinux.cfg ディレクトリに移動します cp /media/isolinux/* /var/lib/tftpboot/ # cp iso ファイルを配置し、デフォルトで読み取ります (インストール メニューが表示されます)
システム構成のデフォルトファイルメニューセパレーターはありません # 空行を挿入します
メニューセパレーター # 空行を挿入
 
ラベル Linux
  メニューラベル ^CentOS 7.5 をインストール #メニューディレクトリ kernel vmlinuz #カーネルファイル 追加 initrd=initrd.img ks=http://192.168.100.10/ks/ks.cfg

httpdの設定

yum インストール -y httpd
systemctl スタート httpd
systemctl を有効にする httpd
mkdir -p /var/www/html/centos
cp -rfv /media/* /var/www/html/centos/
[root@pxe-server ~]# cat /etc/yum.repos.d/dvd.repo 
[開発] #後で選択したパッケージ名を定義します=centos
ベースURL=http://192.168.100.10/centos
gpgcheck=0
有効=1

無人設定

yum インストール -y システム構成キックスタート
system-config-kickstart #開始

ks.cfg ファイルの具体的な構成は次のとおりです。

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ソフトウェアパッケージは、ニーズに応じて選択できます。ここでは最小限のインストールを選択したので、ベースパッケージを選択しました。
ニーズに応じて機能を実装するスクリプトを作成します

PXE を使用して Linux システムの展開を自動化する方法に関するこの記事はこれで終わりです。Linux の PXE 自動展開の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  フロントエンドインタビューに必要なホモロジーとクロスドメインの詳細な説明

>>:  HTML における <meta> タグの使用に関する詳細な説明

推薦する

面接官がmysqlのcharとvarcharの違いを尋ねたとき

目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...

vue-cli 3 で vue-bootstrap-datetimepicker 日付プラグインを使用する方法

需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...

Vueはマルチタブコンポーネントを実装します

効果を直接確認するために、リロード、左を閉じる、右を閉じる、その他の機能を閉じるなどの右クリック メ...

Tencent Cloud で HTTPS を無料で導入する方法

最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...

React クラスコンポーネントのライフサイクルと実行順序

1. Reactコンポーネントを定義する2つの方法1. 関数コンポーネント。単純な関数コンポーネント...

Linux でメモリ使用量を確認する方法

システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

MySQL 8.0.20 Window10無料インストール版設定とNavicat管理チュートリアルグラフィック詳細説明

1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

MySqlを最適化するためにnot inを使用する方法

最近、プロジェクトで選択クエリを使用する際に、未使用の主キー ID を除外するために not in ...

Mysql5.6.36 スクリプトのコンパイル、インストール、初期化のチュートリアル

概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...

HTML CSS の 3 つの一般的なスタイル セレクター

1: タグセレクタータグセレクターはすべてのタグに使用されます。ここでは p を例に挙げます。つまり...

テーブルを動的に読み込み、削除する JavaScript

この記事では、テーブルを動的に読み込み、削除するためのJavaScriptの具体的なコードを参考まで...

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...

MYSQL での Truncate の使用法の詳細な説明

この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...