仮想サーバー構築

【仮想サーバー構築】KickStart設定ファイルについて!

前回は、 「VmWare Workstation Player」 上へ、RHEL7.5をインストールしました。

今回は、前回使用したKickStart設定ファイルの中身についてみていきます。

KickStart設定ファイルとは(おさらい)

Red Hat Enterprise Linux インストールプロセスでは、インストールしたシステムの設定が自動的にキックスタートファイルに記述されます。このファイルは常に 「/root/anaconda-ks.cfg」というファイル名で保存されます。

同一設定のインストールを繰り返したり、別のシステム用にコピーに修正を加えて使用することができます。つまり、普通にRHELをインストールすると、そのサーバー内の「/root」ディレクトリ配下へ「anaconda-ks.cfg(設定ファイル)」と言うファイルが作成されるので、それを修正してKickStartに使用します。

構築環境概略図

各サーバは、http経由で「node0」からKickStart設定ファイルを読み込みます。

本記事では、KickStart設定ファイルの格納場所として、サーバー「node0]を前提として説明していますが、自前のPCにApacheなどをインストールして、代用しても問題ありません。

 要はブラウザからKickStart設定ファイルの内容が参照できる環境があれば問題ありません。

Kickstart設定ファイル

ここからは、「KickStart設定ファイル」の設定内容について説明していきます。

ネットワークの設定

KickStart設定ファイルへネットワークの設定を記述します。

スタティック設定

実際の環境構築の場合、「DHCP」を使用する現場はありません。

本記事では「スタティック」設定で解説していきます。

DHCPとは「Dynamic Host Configuration Protocol」の略で、 IPv4ネットワークにおいて通信用の設定を自動的に行うためのプロトコルです。つまり、IPアドレスなどの情報を自動で割振り(設定)する機能です。逆にスタティックとは、予め通信用の接続アドレスを固定で設定しておく、固定IPアドレスを指しています。

  • wb01

上記は「wb01」サーバーへのネットワーク設定例になります。

「wb01」 は、NIC冗長化は行わないため、付与するIPアドレスは1つ(ens33)です。
残りの(ens34、ens35)は予備として作成しています。複数のネットワークへ接続する、またはチーミング設定を行うには、VmWareの設定で必要とする数分、ネットワークアダプタを作成しておく必要があります。

  • ap01(ap02はIPアドレスとホスト名を修正)

「ap01」 は、NIC冗長化を行うため、付与するIPアドレスは2つ(ens33、ens34)です。
残りの(ens35)は予備として作成しています。複数のネットワークへ接続する、またはチーミング設定を行うには、VmWareの設定で必要とする数分、ネットワークアダプタを作成しておく必要があります。

  • db01 (db02はIPアドレスとホスト名を修正)

「db01」 は、NIC冗長化を行うため、付与するIPアドレスは2つ(ens33、ens34)です。
残りの(ens35)は予備として作成しています。複数のネットワークへ接続する、またはチーミング設定を行うには、VmWareの設定で必要とする数分、ネットワークアダプタを作成しておく必要があります。

KickStartのNetwork設定オプションは以下の通り。

NetWorkオプション

  • 「--bootproto」:"static"で静的設定
  • 「--device」:デバイス名設定
  • 「--ip、--netmask」:IP設定
  • 「--gateway」:VmWare Workstation Player 上へ作成する為、自動で付与されます。
  • 「--nameserver 」:上記同様
  • 「--noipv6 」:ipv6無効化
  • 「--activate 」:boot時にデバイス有効化
  • 「--nodefroute 」:GWと通信なし設定
  • 「--hostname」:ホスト名指定

ブートローダー設定

ブートローダを指定します。

ブートローダの設定は、特にルートVGやその他のカスタマイズを必要としない場合は、デフォルトで問題ありません。

ディスクフォーマット指定

対象ディスクの既存パーティションを全て削除します。

インストール前に既存のパーティーションを削除してから、新たにパーティションを作成します。既存のデータはすべて削除されます。

パーティション設定

partコマンドでパーティションを指定します。

ここでは、「/boot(ext4)」ディスクを1GB、「sda(pv)」を100000(約100GB)で指定します。
PVサイズは、仮想マシン作成時に指定したディスク容量を超えるとエラーになります。

partコマンドオプション

  • 「--fstype」:ファイルシステムタイプ設定
  • 「--ondisk」:パーティション作成ディスク指定
  • 「--size」:パーティションサイズ設定
  • 「--label」:ラベル設定

LVM設定

論理ボリュームを設定します。

本記事では、ディスクフォーマットに「ext4」を使用します。
昨今では「xfs」形式のファイルフォーマットも増えてきましたが、既存の資産を引き継ぐため「ext4」を選択する企業は多いです。

  • wb01

Webサーバー上で稼働するサービスは「httpd」のみを想定しているため、パーティションの設定は特に神経質になる必要はないでしょう。

  • ap01

wb01との違いは「Jboss」の格納領域を追加しています。
「Jboss」とはオープンソースで開発されているJava EEアプリケーションサーバの一つです。

  • db01

wb01との違いは「oracle」の格納領域を追加しています。
「oracle」とはリレーショナルデータベースシステムの一つです。

データベースのデータ領域は、DBMSシステムをインストールしたディスク(上記の設定)とは、別のディスク上へ作成するのが一般的です。

別ディスクに作成することで、ディスクIOの分散化やDBMSをインストールしたディスクが破損しても、データ領域への影響を最小限に抑えることが出来る為です。

logvolコマンドオプション

  • 「--fstype」:ファイルシステムタイプ設定
  • 「--size」:パーティションサイズ設定
  • 「--name」:ロジカルボリューム名設定
  • 「--vgname」:ボリュームグループ名設定

パッケージ設定

本記事内での構築環境は、全サーバーへ同一パッケージのインストールを想定しています。
x-windows-systemを同時にインストールし、GUI環境での操作を可能とします。

「%packages」コマンドを使用して、インストールしたいパッケージをリストするキックスタートファイルのセクションを開始します 。

また、このセクションは 「%end」 コマンドで終了する必要があります。

サービス設定

サービス設定の有効化/無効化の設定を行います。

本記事では、全サーバーに「chronyd」サービスを有効化の設定をしておきます。

serviceコマンドオプション

  • 「--enabled」:有効化設定
  • 「--disabled」:無効化設定

rootパスワードの設定

「root」のパスワードを設定します。その際、パスワードを暗号化して設定します。

パスワードの暗号化にはいくつかの方法がありますが、ここでは「Python」による暗号化設定を行います。

下記のコマンドを使用して、パスワード:「P@ssW0rd」を暗号化します。

# python -c 'import crypt; print(crypt.crypt("P@ssW0rd", crypt.METHOD_SHA512))'

KickStartの設定ファイルへは、上記の2行目(暗号化されたパスワード)を設定します。

rootpwコマンドオプション

  • 「--iscrypted」:暗号化パスワード設定

ユーザー設定

ユーザーとグループの設定を行います。

本記事では、「root」以外に構築専用のユーザ「infusr(infusr,wheel )」を作成します。

ユーザー追加の際、パスワードが平文で記述されるため注意してください!

例)Oracle

複数グループを設定する場合は、カンマ区切りで設定します。

実行モード

インストールを行う際の実行モードを設定します。

本記事では、ターミナルからの遠隔インストールを想定しているため、実行モードは「text」モードを採用します。

上記では、「テキスト」モードでインストール実行を想定しているため、「 graphical 」をコメント化しています。

SELINUX無効化設定

selinuxを無効化に設定します。

selinuxコマンドオプション

  • 「--enabled」:有効化設定
  • 「--disabled」:無効化設定
  • 「--permissive」:警告出力設定

設定ファイル例

例)wb01

よく読まれている記事

1

Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロンプト画面を開いているとき、常にShellは起動している状態です。 「Shell」とは ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-仮想サーバー構築