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の継承の6つの方法を詳しく解説

プロトタイプチェーン継承プロトタイプ継承は、ECMAScript における主な継承方法です。基本的な...

知っておくべき 7 つのネイティブ JS エラーの種類

目次概要1. 範囲エラー2. 参照エラー3. 構文エラー4. タイプエラー5. URIエラー6. 評...

CentOS で yum を使用して rabbitmq-server をインストールする方法

RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...

期間限定フラッシュセール機能を実装するJavaScript

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

ユーザー エクスペリエンス デザイナーとは誰ですか?

怖いですね! 写真の翻訳: (内側から外側へ)最初のレイヤー:ユーザーエクスペリエンス第2層:コンテ...

タブバーのいくつかの実装方法(推奨)

タブ: カテゴリ + 説明タグバー: カテゴリ => ユーザーに現在地と目的地を知らせる1. ...

MySQL スロークエリログの設定と使用方法のチュートリアル

序文MySQL スロー クエリ ログは、日常業務でよく遭遇する機能です。MySQL スロー クエリ ...

mysql の追加、削除、変更、クエリの基本ステートメント

文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

Linux 型バージョン メモリ ディスク クエリ コマンド紹介

1. まず、Linux システムのバージョン内容について概要を説明します。 1. カーネルバージョン...

Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...

MYSQL 演算子の概要

目次1. 算術演算子2. 比較演算子3. 論理演算子4. ビット演算子5. 演算子の優先順位1. 算...

Linux でファイルをあいまい検索するのに適したコマンドは何ですか?

1. はじめにこの記事では、主に Linux システムでコマンドライン ツールを使用してファイルを...

Vue+canvas は、ウォーターフォール チャートを上から下までリアルタイムに更新する効果を実現します (QT と同様)

早速ですが、デモ画像をご紹介します。実装されている機能は、左側に凡例、右側にウォーターフォール チャ...

一般的な HBase 運用および保守ツール 10 個の概要

概要: HBase には、ユーザーに管理、分析、修復、デバッグ機能を提供するための多くの操作および保...