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> タグの使用に関する詳細な説明

推薦する

CSSは、閉じることができるマスクレイヤーを備えたポップアップウィンドウ効果を実装します。

実際の開発ではポップアップウィンドウがよく使われます。CSS3を勉強していたときに、閉じることができ...

MySQL マルチテーブルクエリの具体例

1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...

W3C チュートリアル (6): W3C CSS アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。スタイル シートは...

js はマウスインとマウスアウトによるカード切り替えコンテンツを実装します

この記事では、マウスでカード内外のコンテンツを切り替えるためのjsの具体的なコードを紹介します。具体...

Vueコンポーネントの基本のまとめ

コンポーネントの基本1 コンポーネントの再利用コンポーネントは再利用可能な Vue インスタンスです...

JavaScript フロントエンドのタイムアウト非同期操作に最適なソリューション

目次コードの実行に長い時間がかかる場合はどうなりますか? Axiosにはタイムアウト処理機能が搭載さ...

使用状況分析を備えたMySQL

持つことの使用法having 句を使用すると、グループ化後にさまざまなデータをフィルター処理できます...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

iframeフレームはIEブラウザで白い背景を透明に設定します

最近、プロジェクトを進める過程で、ページの階層構造を描画するために iframe を頻繁に使用する必...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

Ubuntu 18.04はルート権限を取得し、ルートユーザーとしてログインします

事前に書いておきます:次の手順では、ターミナルにコマンドを入力する必要があります。コンピューターでブ...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

Struts2 ジャンプ後に CSS と JS が無効になる問題の解決策のアイデアと実装手順

struts2 アクションの実行後にジャンプした jsp が表示されると、css が機能しません。問...

Vue Element UIの使用時に遭遇した問題をまとめる

目次1. DateTimePickerの日付選択範囲は現在時刻とそれ以前です2. DateTimeP...

Vue テンプレート構成と Webstorm コード形式仕様設定

目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...