GRMLなどの回復イメージを使用してCentOS / RHEL 7をリモートでインストールする方法は?

GRMLなどの回復イメージを使用してCentOS / RHEL 7をリモートでインストールする方法は?

SSHアクセスも提供するリモートシステムでGRMLイメージでPXEブートができるとしましょう。

今問題は、これらの環境にCentOSをインストールする方法です。

KVMアクセスなどの機能は使用できません。

数年前、同様の環境でdebootstrapを使用してDebianを正常にインストールしました。 CentOS/RHELに似たものはありますか?

これらの環境にCentOS / RHELをインストールする最も先進的な方法は何ですか?

答え1

RHEL またはそれに基づくディストリビューションを自動的にインストールするには、次を使用します。始める

RHELサーバーを構築すると、/root/anaconda-ks.cfg冗長ホストを構築するために使用できるファイルが生成されます。

いくつかのオプションがあり、そのうちの2つが最も適しています。
1. カスタム Live CD/リムーバブルメディアkskstart イメージ
2.フルPXE bootネットワークインストール。

ksネットワークインストールには、ファイルとインストールソースを含むネットワーク共有が必要です。

これにより、あなたの環境は、PXE/サーバーとホストのMACアドレスでのみboot使用するキックスタート設定を識別できます。bootkickstart

引用する

インストールの開始
ライブCDの作り方

答え2

qemu KVMインスタンスで最小インストールを準備し、イメージをリモートシステムに転送できます。

RAID-1 Centos 7システムのインストールを例にしてみましょう。

ローカルワークステーションで:

$ truncate --size 5G disk1.img
$ truncate --size 5G disk2.img
$ qemu-system-x86_64 \
    -cdrom CentOS-7.0-1406-x86_64-DVD/CentOS-7.0-1406-x86_64-DVD.iso \
    -hda disk1.img -hdb disk2.img -m 2G -boot d -enable-kvm \
    -net user,hostfwd=tcp::10022-:22 -net nic # enable net, ssh portforwarding

qemu インスタンスでは、公式に推奨されるインストーラを使用して CentOS 7 をインストールできます。つまり、2つのディスク選択、手動パーティション化、自動パーティション作成、/volumeグループのraid1選択、/bootデバイスタイプ設定からraid1選択などが可能です。インストールが完了したら、システムアップデート、yum updateシステムGPGキーの承認、ネットワーク設定(ターゲットシステムのMACアドレスを使用)、SSHキーなど、いくつかの基本事項を簡単に設定できます。

将来のサイズを変更するには、RAID 1書き込み意図ビットマップ(仮想マシンの内部)を無効にすることが重要です。

# mdadm --grow /dev/md/*pv00 --bitmap none

画像を転送するには、ミラーの左足(ワークステーションからサーバーへ):

$ gzip -c disk1.img | ssh example.org "gzip -d | dd of=/dev/sda bs=128K"

最小の画像は非常に良い圧縮率で圧縮する必要があります。私の実験では、圧縮されたサイズは約230MiBでした。

右足にはgrub2部分のみが必要です。

$ dd if=disk2.img bs=512 count=2048 | gzip -c \
    | ssh example.org "zip -d | dd of=/dev/sdb bs=128K"

サーバー(ブートされた回復システム内)でルートボリュームグループを拡張できます。

# partx -v --add /dev/sda
# mdadm --stop /dev/md/*boot --stop /dev/md/*pv00
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sda
# mdadm --run /dev/md/*boot --run /dev/*pv00
# mdadm --grow /dev/md/*pv00 --size max
# pvresize /dev/md/*pv00
# lvchange --activate y centos/root
# lvresize --resizefs --extents +100%FREE centos/root
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sdb
# mdadm --add /dev/md/*boot /dev/sdb1
# mdadm --add /dev/md/*pv00 /dev/sdb2
# mdadm --wait /dev/md/*pv00
# mdadm --grow /dev/md/*pv00 --bitmap internal
# mdadm --wait /dev/md/*pv00
# shutdown -r now

高度なもの

この方法を使用して基本イメージから複数のベアメタルマシンをインストールするには、基本イメージを調整するいくつかの初期化スクリプトを使用する必要があります。明らかなもの(ホスト名、ネットワーク構成など)に加えて、システムのすべてのUUIDを変更する必要があります。これには次のUUIDが含まれます。

  • RAIDデバイス
  • LVMPVとVG
  • ファイルシステム
  • 交換
  • /etc/sysconfig/network-scripts( ) 以下のネットワーク構成スクリプト

その後、もちろん、これらのUUIDSを使用するすべての構成ファイルを変更する必要があります。

  • /etc/default/grub (grub2->mkconfig次の呼び出し...)
  • /etc/mdadm.conf
  • /etc/fstab

ガイドライン

クライアント/ターゲットシステムが異なる物理セクタサイズを使用すると、プロセスはより複雑になります。たとえば、ターゲットシステムが512バイトの代わりに4kセクタを使用している場合です。その後、qemuは4k物理セクタも使用/エミュレートするように設定する必要があります(qemuはこれを実行できます)。

注目すべきもう1つのことは、ターゲットシステムがUEFIブートのみをサポートしているかどうかです。この場合、qemuがUEFIもエミュレートしていることを確認する必要があります。

結論として

qemu kvmインスタンスを使用してから、結果のインストールをリモートシステムに移植するプロセスは比較的簡単です。

関連情報