Linux--効率的なバッチネットワークインストールを実現するためのPXE +キックスタート-資格のあるネットワークマネージャーになる方法について?

記事ディレクトリ


序文

  • インターネット技術の継続的な成長に伴い、サーバーの数も増加しています。ITの運用と保守は、ITサービスの意味の重要な部分になっています。ますます複雑なビジネスとますます多様化するユーザーのニーズに直面して、拡大を続けるITアプリケーションでは、ITサービスを柔軟、便利、安全、継続的に保証するために、ますます合理的なモデルが必要になります。このモデルの保証要素は、ITの運用と保守です。
  • 少数のサーバーの初期開発から巨大なデータセンターまで、手作業だけではテクノロジー、ビジネス、管理などの要件を満たすことができなくなり、標準化、自動化、アーキテクチャの最適化、プロセスの最適化など、ITサービスのコストを削減する要素がますます増えています。人々に評価される
  • そして、バッチ展開を自動化し、安定したシステムをインストールする方法は、自動化を実現するための最初のステップです。
  • 次に、PXE(起動前実行環境に基づく起動前実行環境)ネットワークでインストールされたアートメソッドと、キックスタート構成のバインド無人自動インストールについて学習します。

1.PXEの概要

  • 起動前の実行環境であるPXEは起動方法です。このプロトコルは通常、サーバーとクライアントの2つの部分で構成されます。つまり、システムのインストール時に「ソース」を見つけることができれば、この方法で「インストールソース」を自分で作成できます。システムのインストールを実現できます。
  • PXEは、Intelによって開発されたネットワークブートテクノロジーです。クライアント/サーバーモードで動作し、クライアントがネットワーク経由でリモートサーバーからブートイメージをダウンロードし、インストールファイルまたはオペレーティングシステム全体をロードできるようにします。

2. PXEを構築するために満たす必要のある前提条件(理論的ステップ)

  • 無人インストールを実装する前に、ftp、http、tftp、dhcpなどの「インストールソース」の確立を実現するためのいくつかのサービスを構築する必要があります。
  • ホストが起動すると、標準の入力と出力により、関連する操作のためにPXEクライアントがメモリに転送され、選択可能な関連オプションが表示されます。したがって、クライアントのネットワークカードはPXEプロトコル(統合BOOTROMチップ)をサポートする必要があり、マザーボードはネットワークブートをサポートします
  • PXEクライアントは、ネットワークを介してスタートアップファイルをダウンロード(ダウンロード)して、ローカルで実行します。具体的なプロセスは、PXEクライアントがネットワークカードを介してLANにIP要求を送信し、DHCPサーバーがシステムインストールに必要なIPアドレスとファイルを提供し、受信したファイルをシステムインストールに使用することです。したがって、クライアントにアドレスを自動的に割り当て、ブートファイルの場所を指定するには、ネットワーク内にDHCPサーバーが必要です。
  • インストールプロセスには、yumソース、カーネルファイルなど、他のサーバーによって提供されるリソースが必要です。ホストがこれらのリソースを取得すると、スムーズにインストールできます。最終結果は次のとおりです。任意のホストは、ネットワークスタートアップを選択するときに、DHCPサーバーによって配布されたIPを取得し、取得したIPアドレスを介してLAN内のTFTPサーバーと通信し、スタートアップファイルを取得し、FTPまたはHTTPと通信し、yumソースを取得します。ファイルやコアファイルなど。サーバーは、TFTP(Trivial File Transfer Protocol)を介してブートイメージファイルのダウンロードを提供します。
  • その中で、最初の条件は実際にはハードウェア要件です。現在、ほとんどのサーバーとほとんどのPCがこのサポートを提供できます。BIOS設定でネットワークまたはLANからの起動のみを許可する必要があります。
  • その後、自動的にインストールが開始され、このプロセスでは誰も何もする必要がありません
  • 簡単な概略図は次のとおりです。
    マーク

3つ目は、PXEバッチ展開の利点です。

  • リモート実現:CD-ROM、CD-ROM、および一部の外部デバイスによる制限なし
  • 規模:複数のサーバーを同時にインストールする
  • 自動化:システムをインストールし、さまざまなサービスを構成します。これらのサービスは無人であるため、運用および保守担当者の作業負荷が大幅に軽減されます。

第4に、PXEリモートインストールサーバーを構築します

  • PXEリモートインストールサーバーは以下を統合します。
    • CentOS7インストールソース
    • TFTPサービス
    • DHCPサービス
  • PXEブートプログラム、Linuxカーネル、ブートメニュー、およびその他のデータをクライアントのベアメタルに送信し、インストールファイルを提供することができます

1.TFTPサービスをインストールして開始します

  • TFTP(Trivial File Transfer Protocol)は、UDPプロトコルに基づくクライアントとサーバー間の単純なファイル転送用のプロトコルであり、小さなファイル転送アプリケーションに適しています。TFTPサービスは、デフォルトでxinetdサービスによって管理され、使用されます。 UDPポート69
  • xinetdは、スーパーサーバーとも呼ばれる新世代のネットワークデーモンサービスプログラムであり、さまざまな軽量インターネットサービスの管理に一般的に使用されます。
  • xindtdサービスの構成ファイルは/etc/xindtd.d/ftpにあります。構成するときは、「disable = yes」を「disable = no」に変更するだけです。
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum -y install tftp-server xinetd        ##安装相关软件包
[root@localhost ~]# vim /etc/xinetd.d/tftp 

マーク

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# 
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost ~]# systemctl start xinetd
[root@localhost ~]# systemctl enable xinetd

2.DHCPサービスをインストールして有効にします

  • DHCP(動的ホスト構成プロトコル、動的ホスト構成プロトコル)は、ローカルエリアネットワーク用のネットワークプロトコルであり、UDPプロトコルで動作します。
[root@localhost ~]# yum -y install dhcp
...
...略
  • 最初の/etc/dhcp/dhcpd.confは空のファイルであるため、ファイルの要件は/usr/share/doc/dhcp-4.2.5/dhcpd.conf.exampleで確認することです。
  • したがって、このファイルを/etc/dhcp/dhcpd.confファイルにコピーしてから、後続の構成ファイルを変更する必要があります。
[root@localhost xinetd.d]# cd
[root@localhost ~]# cd /etc/dhcp/
[root@localhost dhcp]# ls        ##dhcp配置文件是dhcp.conf,正常是空的
dhclient.d             dhcpd6.conf  scripts
dhclient-exit-hooks.d  dhcpd.conf
[root@localhost dhcp]# cd /usr/share/doc/dhcp-4.2.5/        ##切换至dhcp配置模板文件目录
[root@localhost dhcp-4.2.5]# ls
dhcpd6.conf.example  dhcpd.conf.example  ldap
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes        ##确认覆盖,将配置文件模板复制到dhcp配置文件中去
  • 次に、dhcpdの構成ファイルを変更し、最初にグローバル構成を変更します
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 

ddns-update-style  none;
next-server 192.168.126.15;
filename "pxelinux.0";
...
...
subnet 192.168.126.0 netmask 255.255.255.0 {
  range 192.168.126.100 192.168.126.200;
  option routers 192.168.126.15;
}

マーク

  • 次に、アドレスプールを変更します
    マーク
  • DHCPサービスを有効にする
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@localhost ~]# 

3. Linuxカーネルを準備し、イメージファイルを初期化します

mount /dev/sr0 /mnt
cd /mnt/images/pxeboot						
cp vmlinuz /var/lib/tftpboot/	
cp initrd.img /var/lib/tftpboot/
  • Linuxシステムカーネルファイルinitrd.imgと初期化イメージファイルをtftpルートディレクトリにコピーします
    マーク

4.PXEブートプログラムを準備します

[root@localhost pxeboot]# yum -y install syslinux        ##PXE引导程序由软件包syslinux提供
...
...略
  • syslinuxをダウンロードした後、このディレクトリのPXEブートプログラムをtftpルートディレクトリにコピーします
    マーク

5. FTPサービスをインストールして有効にし、centos7インストールソースを準備します

[root@localhost ~]# yum -y install vsftpd
...
...略
[root@localhost ~]# mkdir /var/ftp/centos7        ##新建目录
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/        ##将/mnt下所有文件复制至该新建目录,需等待一段时间加载
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# 

6.ブートメニューファイルを構成します

  • ブートメニューは、カーネルの呼び出し方法や初期イメージのロード方法など、クライアントのブートプロセスをガイドするために使用されます。
  • デフォルトのブートメニューファイルは、TFTPルートディレクトリ(/ var / lib / tftpboot /)のpxelinux.cfgサブディレクトリにあり、ファイル名はデフォルトです。
[root@localhost ~]# cd /var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# vim pxelinux.cfg/default

default  auto
prompt 0

label   auto
kernel vmlinuz
append  initrd=initrd.img 
method=ftp://192.168.126.15/centos7

label linux text
kernel  vmlinuz
append text initrd=initrd.img
method=ftp://192.168.126.15/centos7

label linux rescue
kernel vmlinuz
append  rescue initrd=initrd.img
method=ftp://192.168.126.15/centos7

マーク

7.ファイアウォールがオフになっていることを確認し、PXEネットワークのインストールを確認します

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
  • VMwareを使用して、テスト用の新しい仮想マシンを作成します。ここでの仮想マシンのメモリは少なくとも2G以上であることに注意してください。そうでない場合、メモリ不足エラーが発生します。
  • 仮想マシンの設定については何もせず、クリックして開始するだけです
  • プロンプト文字列「boot:」の直後にEnterキーを押す(または「auto」コマンドを実行する)と、インストールファイルがネットワーク経由で自動的にダウンロードされ、デフォルトのグラフィカルインストール入口に入ります(中に「↑」または「↓」を押します)。進捗状況を確認してください)
    マーク

    マーク
  • 「linuxtext」コマンドを実行する場合は、テキストインストールエントリを入力します
  • 「linuxrescue」コマンドを実行する場合は、レスキューモードに入ります

  • 血と涙==注意して真剣にならなければなりません!間違った句読点を付けると、すべてが失われます。

第五に、キックスタート無人インストールを実現します

  • 前回の記事では、PXEテクノロジーを使用してCentOS 7システムをリモートでインストールする方法を紹介しました。インストールメディアは、CD-ROM、モバイルハードディスク、その他の機器に限定されず、システムインストールの柔軟性が大幅に向上しました。
  • ただし、インストール中は、言語、キーボードタイプの手動選択、インストールソースの指定などの一連の相互操作が引き続き必要であり、バッチインストールが必要な場合は非常に不便です。
  • 次に、無人自動インストールの実装方法をさらに学習します。キックスタートツールを使用してインストール応答ファイルを構成することにより、インストールプロセス中のさまざまな設定が自動的に完了し、手動による介入が不要になり、ネットワークインストールの効率が向上します。

1.応答ファイルをインストールする準備をします

  • CentOS 7にsystem-config-kickstartツールをインストールした後、グラフィカルウィザードツールを使用してインストール応答ファイルを構成できます。
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum -y install system-config-kickstart
...
...略

2.「キックスタート設定プログラム」ウィンドウを開きます

通过桌面菜单“应用程序”-->“系统工具”-->“Kickstart” 打开
或
执行 “system-config-kickstart” 命令打开

マーク
マーク

3.キックスタートオプションを構成します

3.1基本構成

マーク

3.2設置方法

マーク

3.3ブートローダーオプション

マーク

3.4パーティション情報

マーク
-/ boot
マーク
500M- / home 4096M-
マーク
/ swap 4096M-
マーク
/残りのスペースが割り当てられます
マーク
マーク

3.5ネットワーク構成

マーク
マーク

3.6ファイアウォール構成

マーク

3.7インストール後のスクリプト

勾选“使用解释程序”:/bin/bash
脚本:
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.126.15/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo

マーク

4.自動応答ファイルを保存します

マーク

  • 指定された保存場所を選択します。ファイル名はks.cfgで、
    デフォルトの保存は/root/ks.cfgです。
    マーク

5.バッチ自動インストールを実現します

  • 自動インストール用の応答ファイルを入手したら、それをPXEインストールサーバーのFTPディレクトリに配置し、ブートメニューを適切に変更して、ネットワークに基づくバッチ自動インストールを実現します。

5.1正常に保存されたことを確認します

  • 次に、それを/ var / ftpディレクトリにコピーします
[root@localhost ~]# ls
anaconda-ks.cfg       ks.cfg  模板  图片  下载  桌面
initial-setup-ks.cfg  公共    视频  文档  音乐
[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# 

5.2インストールするソフトウェアパッケージを構成する

[root@localhost ftp]# cd
[root@localhost ~]# ls
anaconda-ks.cfg       ks.cfg  模板  图片  下载  桌面
initial-setup-ks.cfg  公共    视频  文档  音乐
[root@localhost ~]# vim anaconda-ks.cfg 
[root@localhost ~]# 
  • デスクトップインストールの場合、%packagesを%endにコピーしてks.cfgファイルに保存する必要があります
    マーク
  • 直接選択し、右クリックしてコピーして貼り付けます
[root@localhost ~]# vim ks.cfg 

編集モードに直接入りますi、一番下にドラッグし、右クリックしてコピーして貼り付け、wq保存して終了します。これで完了です。
マーク

5.3ブートメニューファイルのデフォルトを編集し、ksブートパラメータを追加します

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

マーク

6.無人インストールを確認します

  • 自動応答を開始した後、クライアントがPXEモードで起動するたびに、クライアントはks.cfg応答構成ファイルを自動的にダウンロードし、システムの介入なしに、その設定に従ってCentOS7システムをインストールします。
  • 新しい空の仮想マシンを起動して試してみてください(1Gのデフォルトメモリを再度取得ないでください
    マーク
    メモリが不足している兄貴
    です......読み込み中
  • プロセスは完全に自動化されています。この手順を実行してライセンスに同意するだけです。
    マーク
  • 次に、ユーザーにログインしてパスワードを入力します
    マーク
    マーク
  • なりました
    マーク
  • クライアントのインストール後、yumウェアハウスの構成を確認すると、「インストール後のスクリプト」の設定に従って/etc/yum.repos.d/local.repoファイルが自動的に作成されていることがわかります。
[root@localhost ~]# cat /etc/yum.repos.d/local.repo 
[local]
name=local
baseurl=ftp://192.168.126.15/centos7
enabled=1
gpgcheck=0
[root@localhost ~]# 

##小さな友達、あなたはさらにいくつかの空の仮想マシンを開いて、大量効率的で頭の悪いインストールの喜びを試すことができます##

謙虚なリマインダー:ファンが爆発することに注意してください
==、

おすすめ

転載: blog.csdn.net/weixin_51486343/article/details/111102708