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

推薦する

JSはユーザー登録インターフェース機能を実装します

この記事の例では、ユーザー登録インターフェース機能を実装するためのJSの具体的なコードを参考までに共...

Linux または Windows 環境での pytorch のインストールと検証 (runtimeerror 問題の解決)

1. pytorch公式サイトから対応するインストールファイルをダウンロードします。 https:...

MySQL 圧縮版 zip のインストールに関する問題の解決策

本日、MySQLの圧縮版をインストールする際に問題が発生しました。サービスが起動できず、2、3時間苦...

Linux 上での Go 環境の構築のインストールと設定の説明

Linux で Go 環境を構築するのは非常に簡単です。 1. go1.2.1.linux-386....

CSSメディアクエリのアスペクト比を小さくする方法

CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...

VueとElementUIを組み合わせたスキン変更ソリューション

目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...

データベースクエリの最適化: サブクエリの最適化

1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)

目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...

LNMP を展開して HTTPS サービスを有効にする方法に関するチュートリアル

LNMP とは: Linux+Nginx+Mysql+(php-fpm、php-mysql)つまり、...

MySQL ユーザーのホスト属性を素早く変更する方法

MySQL にリモートでログインする場合、使用するアカウントには特別な要件があります。アカウントのデ...

2018 年にリリースされる Apache Spark 2.4 の新機能は何ですか?

この記事は、2018 年 9 月 19 日に Adob​​e Systems Inc で開催された ...

MySQL の日付関数と日付変換およびフォーマット関数

MySQL は、膨大なユーザーベースを持つ無料のリレーショナル データベースです。この記事では、My...

高度なクローラー - JS 自動レンダリングのための Scrapy_splash コンポーネントの使用

目次1. scrapy_splash とは何ですか? 2. scrapy_splashの役割3. s...

複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...